Menu

Summary of changes

Bogdan Drozdowski

2025-01-04

* LibSecRm version 3.3
  Fixed compile errors after name randomisation. Added support for
  fallocate64(). Checking for more compile warnings. Portability
  updates - LibSecRm now compiles on Solaris/SunOS. Added support for
  systems with a less advanced /proc filesystem. Code quality updates.
  Updates in the build system. Updates in unit tests and new tests
  (current coverage: 46.2%). Documentation updates.

2022-12-13

* LibSecRm version 3.2
  Significant portability updates. LibSecRm now compiles on FreeBSD
  and macOS. Allow setting the number of iterations using an
  environment variable. Improvements in banning. Improvements in the
  build system. Improvements in code quality. Significant improvements
  in the documentation. New unit tests.

2021-01-09

* LibSecRm version 2.9
  Added intercepting posix_fallocate64(). Portability improvements.
  LibSecRm should work better with some filesystems which have i-node
  numbers greater than 2^32-1 and compile under non-ANSI-C. Checked
  running LibSecRm under GCC address & undefined behaviour sanitizers.
  Added more unit tests.

2019-02-08

* LibSecRm version 2.8
  Added intercepting new functions. Fixed initialization code - fixed
  lookup for fopen() and made intercepting malloc() disabled by
  default, because it causes the library to crash. Many improvements
  in checking if an object is banned from being wiped. Improvements
  in code portability and compatibility. Better code maintainability,
  updated copyright and documentation. Improvements in unit tests and
  new tests added.

2017-04-25

* LibSecRm version 2.5
  Many code improvements and simplifications in readability and
  maintenance. Improvements to code related with banning the library
  from interfering with fragile files and programs. Fixed wiping in
  freopen* functions and memory. Improvements to performance. New
  unit tests.

2015-09-04

* LibSecRm version 2.0
  Library marked as not requiring executable stack (security reasons).
  Fixed fallocate(), posix_fallocate() and brk() (in case of systems
  without sbrk()). Fixed unlink()&friends with file renaming. Fixed
  errno setting. Fixed banning functions. Added unit tests. Minor
  code cleanup.

2013-06-02

* LibSecRm version 1.9
  Allow working without dynamic memory allocation. Portability
  improvements (fixes for compilation without some header
  files or functions). Other small fixes and updates.

2012-10-11

* LibSecRm version 1.8
  Portability improvements. Banning mechanism fixed and updated
  with new possibilities.

2012-02-26

* libsecrm version 1.7
  Made the header file SWIG-enabled, updated copyright, code cleanup,
  documentation update. New wiping methods: Schneier and DoD.

2011-10-08

* libsecrm version 1.6

2011-03-17

* libsecrm version 1.5
  Run flawfinder, rats and cppcheck on the code and fixed a few
  performance and syntax problems.

2010-05-22

* libsecrm version 1.4
  Upgrade to newer autotools, gcc and libtool. Added some copyright
  notices when using code from the GNU C library. Run flawfinder on
  the code and changed some parts according to the result. Fixed
  compiling on non-ANSI-C compilers.

2009-05-08

* libsecrm version 1.3
  New compie-time options: defining LAST_PASS_ZERO causes an additional
  wiping with zeros to be performed, defining ALL_PASSES_ZERO causes
  all passes to use zeros for wiping. Added simple scripts that
  randomize the library's public function names so it is harder to
  detect.

2009-02-20

* libsecrm version 1.2
  Displaying error messages about stat macros (during compiling) only
  if sys/stat.h is present. No more public variables and non-namespaced
  function names.

2008-11-30

* libsecrm version 1.1
  Added some memory management functions. Changed "! STDC_HEADERS" to
  "!defined STDC_HEADERS". Verified compiling on OpenBSD. Defining
  _ATFILE_SOURCE for *at() functions' declarations.

2008-07-13

* libsecrm version 1.0
  Removed the "errno" bug, discovered while working on wipefreespace,
  thanks to Patrick 'marlowe' McDonald. Using Gutmann method by
  default. It can be switched off with
    ./configure --enable-random-method

2008-05-02

* libsecrm version 0.9
  The Konqueror bug turned out to be really in Konqueror, not
  libsecrm. This release brings only portability corrections - both
  in 'configure' and source files.

2007-11-28

* libsecrm version 0.8
  Defining _GNU_SOURCE only if not already defined. Setting nagative
  errno codes, like it's usually done. Best (probably) checks if a
  file is used. Some banning checks moved after object checks to
  improve performance.

2007-11-11

* libsecrm version 0.7
  Using old wipe-anything technique if new signal+fcntl is not
  available. Signal & fcntl stuff now only in one function (called
  for every wiping). Renaming libsecrm.h to libsecrm-priv.h
  Libsecrm is now a library for developers, too. It has a header file
  - ${prefix}/include/libsecrm.h and a "import library" libsecrm.a.
  Big portability corrections, some to non-ANSI compilers. Libsecrm
  now compiles on OpenBSD. Checking compiler options instead of
  asuuming them.

2007-09-16

* libsecrm version 0.6.
  Better signal handling (needed because of the Xpdf/libfreetype
  issue). Adding support for banning programs and files from
  messing with them, via config files in ${prefix}/etc. More
  info in the docs. 64-bit functions now active.

2007-09-08

* libsecrm version 0.5

2007-08-06

* libsecrm version 0.4 (0.3 lived less than half a day on the net)
  Switched to GPLv3. New compile macro 'BUF_SIZE' in CFLAGS available.
  Using #pragmas for better compile-time error checking.

2007-07-14

* libsecrm version 0.2.

2007-07-08

* First release of libsecrm, version 0.1.
  Replaces the following functions: fopen, freopen, fdopen, open,
  openat, unlink, unlinkat, truncate, ftruncate (or the 64-bit
  versions of these, if needed).

Related

Wiki: Home

MongoDB Logo MongoDB