Secure Locate - Release 3.1 (stable) ------------------------------------ 3.1 - Its been out there, and the only bug reported in the 2 months since the last beta release was a 3 line minor fix. So 3.1 is the new official, stable release. - The list of user defined database paths were not being parsed correctly. Thanks to Vincent Lefevre for finding the bug and fixing it. 3.0 - The environment variable LOCATE_PATH was not being used properly. It beta will now be used the same as in v2.7. r3 - slocate was returning non zero for -h, --help, -V and --version. It now returns zero. - PRUNEFS was being ignored in /etc/updatedb.conf - Added documentation describing how /etc/updatedb.conf is used and what is supported to the README and the slocate.1 and updatedb.1 man pages. 3.0 - Added fix to compensate for default unsigned chars on PPC. beta - Fixed segfault due to 0 length char array. oops. r2 - Fixed a bug where dangling links were ignored. 3.0 - A complete rewrite. The idea being that when I first wrote this I was beta still a bit of a newbie. This version has a better design and will be r1 easier to debug and maintain. I have also received too many database corruption emails and I wanted to redesign the encode/decode routines to make sure that this was fixed. - This version should have the same functionality of v2.7. Free time is rare so I havn't had any to add any of the features people have been asking for. Feature patches are welcome! 2.7 - Wanderlei Antonio Cavassin fixed a segfault when a regular expression error occurs. - Fixed the --regexp= option. It was not working properly. - Added a minor patch added to the Debian version of slocate. - Fix printf-is-a-macro issue (gcc 3.0). Patch courtesy of rbradetich@uswest.net. - Fixed a segfault when -r regex is used with an extra search string. 2.6 - Fixed some segfaults that occured with random data to -d, -o, and -r options. - Added a patch to make it work on Solaris - Added more path permission checking so that even if a file is readable in a directory that is not readable, slocate will not disclose the file to the user. 2.5 - Really fixed the heap corruption bug. - Fixed a bug that caused slocate to segfault when path lengths are too large. - Made slocate not assign the 'slocate' group to a database if the UID is not 0. - Added alot of error checking (ie, all mallocs, fchdir, etc). - Autoconfed. 2.4 - if /etc/mtab was a symlink to /proc/mounts, load_file() would not read /proc/mounts because /proc/mounts' filesize is 0. Changed load_file to fix this bug. 2.3 - Optimized the decode_db() function. This speeds up searching up to 40%. Also did some general clean up of some of the code. 2.2 - Fixed a segfault. If the environment variable LOCATE_PATH had an invalid slocate.db file path, slocate could segfault. Proper checking now takes place to fix this. 2.1 - Fixed a segfault (very silly bug) which occured when the /etc/updatedb.conf from the old GNU Locate was missing. Secure Lcoate can still use this file so this is why it was checking for it. - Luca Berra added case insensitive searching with the -i option. He also optimized the code to make searching a faster. - Hans-Juergen Godau fixed a segfault when searching through more than one database. 2.0 - Converted the original recursive file tree walking code over to the newly supported fts() function. This is the main reason for pushing the version to 2.0. This is much more stable and has fixed a few bugs that didn't allow the whole file system to be scanned. I took the fts() code right from glibc so that it may be used on libc5 systems. - Added File System Exclusion option. ( -f "fstype1,fstype2,..." ). Now you can exclude NFS, proc, ext2, etc without listing each path. - If 'updatedb' is used to update the database, GNU Locate's original '/etc/updatedb.conf' will be used to exclude file systems and paths. When using 'slocate' to update the database, the '-c' option may now be used to parse the '/etc/updatedb.conf' file. *NOTE* - This only works under Linux. 1.6 - Increased performance when updating the database thanx to Alexander V. Lukyanov. - Matt added some tweaks to make it easier to install on FreeBSD 3.1. - Fixed a bug which didn't allow you to use ./database when using the -o option 1.5 - Added Regular Expression searching (-r and --regexp options) - Added an option to specify the location of where to create the database when indexing a filesystem. Thanks to Ulf Betlehem - Fixed a bug which caused slocate to exit when a directory could not be opened. Thanks to Jim Dougharty . - Multiple search strings are now possible, and the decode_db() function will now use access() instead of opendir to check is a directory is readable thanks to Glenn Maynard . - You can now limit the amount of results shown using the -n option. - A symlink from updatedb to slocate when executed will create a new database starting at the root filesystem '/'. 1.4 - Added globbing support. ( *,?,[^], ) - Made slocate a little more backward compatible to GNU locate for linux. - Added a verbose option to view which files are being indexed. - Removed some silly debug code that cause slocate to just exit if the -e option was used. - Sean Mcnulty fixed a bug which caused the decode function to fail. - As pointed out by a few people, rindex is not as portable as strrchr so those were changed over. - Added Quiet Mode. Error messages are suppressed. - Fixed a bug which allowed users to view files in non readable directories. 1.3 - Optimized some more silly code. - Fixed a segfault when running slocate -u when the /var/lib/slocate directory does not exist. 1.2 - Changed the decode code to make slocate up to 4 times faster. - Optimized other code to make more efficient. 1.1 - With suggestions from Marc Schaefer , some optimization was done. Instead of storeing all the file permissions in the db file, just do a lstat() on any files that match the search string. This makes it a bit quicker, and the db file is also smaller. - Cleaned up the getopts area. Doesn't core anymore when bogus options are given. (*blush* :) - Checks UID when creating DB. Must be root, (or if you modify main.c you can change it to something else.) at the moment. This may change when there become a conf file in the future. 1.0 First release.