-$Id: CHANGES,v 1.82 2000/09/01 14:39:21 stelian Exp $
+$Id: CHANGES,v 1.83 2000/09/26 12:34:51 stelian Exp $
Changes between versions 0.4b19 and 0.4b20 (released ???????????????)
=====================================================================
be unreadable by restore). Prevented array overflow
when multiple -e options are used.
+5. Fixed dump to correctly interpret a filesystem argument
+ which is a mountpoint and it is not an absolute path
+ (as specified in the fstab). Thanks to Bernhard R. Erdmann
+ <be@berdmann.de> for reporting the bug.
+
Changes between versions 0.4b18 and 0.4b19 (released August 20, 2000)
=====================================================================
#ifndef lint
static const char rcsid[] =
- "$Id: main.c,v 1.25 2000/09/01 14:40:27 stelian Exp $";
+ "$Id: main.c,v 1.26 2000/09/26 12:34:52 stelian Exp $";
#endif /* not lint */
#include <sys/param.h>
}
iexclude_list[iexclude_num++] = numarg("inode to exclude",0L,0L);
if (iexclude_list[iexclude_num-1] <= ROOTINO) {
- (void)fprintf(stderr, "Cannot exclude inode %d\n", iexclude_list[iexclude_num-1]);
+ (void)fprintf(stderr, "Cannot exclude inode %ld\n", iexclude_list[iexclude_num-1]);
exit(X_STARTUP);
}
msg("Added %d to exclude list\n",
(void)strncpy(spcl.c_filesys, dt->fs_file, NAMELEN);
#ifdef __linux__
} else {
- /*
- * The argument was not found in the fstab
- * assume that this is a subtree and search for it
- */
#ifdef HAVE_REALPATH
if (realpath(disk, pathname) == NULL)
#endif
strcpy(pathname, disk);
- dt = fstabsearchdir(pathname, directory);
- if (dt != NULL) {
- char name[MAXPATHLEN];
- (void)strncpy(spcl.c_dev, dt->fs_spec, NAMELEN);
- (void)snprintf(name, sizeof(name), "%s (dir %s)",
- dt->fs_file, directory);
- (void)strncpy(spcl.c_filesys, name, NAMELEN);
+ /*
+ * The argument could be now a mountpoint of
+ * a filesystem specified in fstab. Search for it.
+ */
+ if ((dt = fstabsearch(pathname)) != NULL) {
disk = rawname(dt->fs_spec);
+ (void)strncpy(spcl.c_dev, dt->fs_spec, NAMELEN);
+ (void)strncpy(spcl.c_filesys, dt->fs_file, NAMELEN);
} else {
- (void)strncpy(spcl.c_dev, disk, NAMELEN);
- (void)strncpy(spcl.c_filesys, "an unlisted file system",
- NAMELEN);
+ /*
+ * The argument was not found in the fstab
+ * assume that this is a subtree and search for it
+ */
+ dt = fstabsearchdir(pathname, directory);
+ if (dt != NULL) {
+ char name[MAXPATHLEN];
+ (void)strncpy(spcl.c_dev, dt->fs_spec, NAMELEN);
+ (void)snprintf(name, sizeof(name), "%s (dir %s)",
+ dt->fs_file, directory);
+ (void)strncpy(spcl.c_filesys, name, NAMELEN);
+ disk = rawname(dt->fs_spec);
+ } else {
+ (void)strncpy(spcl.c_dev, disk, NAMELEN);
+ (void)strncpy(spcl.c_filesys, "an unlisted file system",
+ NAMELEN);
+ }
}
}
#else