diff options
Diffstat (limited to 'package/e2fsprogs/e2fsprogs-1.37-2.patch')
-rw-r--r-- | package/e2fsprogs/e2fsprogs-1.37-2.patch | 545 |
1 files changed, 545 insertions, 0 deletions
diff --git a/package/e2fsprogs/e2fsprogs-1.37-2.patch b/package/e2fsprogs/e2fsprogs-1.37-2.patch new file mode 100644 index 000000000..bd5e89297 --- /dev/null +++ b/package/e2fsprogs/e2fsprogs-1.37-2.patch @@ -0,0 +1,545 @@ +diff -ur e2fsprogs-1.37/ChangeLog e2fsprogs-1.37-patched/ChangeLog +--- e2fsprogs-1.37/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,8 @@ ++2005-03-31 Theodore Ts'o <tytso@mit.edu> ++ ++ * configure.in: Add tests for __secure_getenv(), prctl(), ++ and sys/prctl.h ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/configure e2fsprogs-1.37-patched/configure +--- e2fsprogs-1.37/configure 2005-02-05 14:53:55.000000000 -0600 ++++ e2fsprogs-1.37-patched/configure 2005-06-11 21:25:24.000000000 -0500 +@@ -10713,7 +10713,8 @@ + + + +-for ac_header in stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mkdev.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h net/if_dl.h netinet/in.h ++ ++for ac_header in stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mkdev.h sys/prctl.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h net/if_dl.h netinet/in.h + do + as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` + if eval "test \"\${$as_ac_Header+set}\" = set"; then +@@ -13816,7 +13817,9 @@ + + + +-for ac_func in chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc ++ ++ ++for ac_func in chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl + do + as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` + echo "$as_me:$LINENO: checking for $ac_func" >&5 +diff -ur e2fsprogs-1.37/configure.in e2fsprogs-1.37-patched/configure.in +--- e2fsprogs-1.37/configure.in 2005-02-05 14:53:55.000000000 -0600 ++++ e2fsprogs-1.37-patched/configure.in 2005-06-11 21:25:24.000000000 -0500 +@@ -525,7 +525,7 @@ + else + AC_CHECK_PROGS(BUILD_CC, gcc cc) + fi +-AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mkdev.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h net/if_dl.h netinet/in.h) ++AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h stdint.h errno.h malloc.h mntent.h paths.h dirent.h getopt.h setjmp.h signal.h termios.h linux/fd.h linux/major.h sys/disklabel.h sys/ioctl.h sys/mkdev.h sys/prctl.h sys/queue.h sys/sockio.h sys/socket.h sys/sysmacros.h sys/time.h sys/stat.h sys/types.h sys/wait.h sys/resource.h net/if_dl.h netinet/in.h) + AC_CHECK_HEADERS(sys/disk.h sys/mount.h,,, + [[ + #if HAVE_SYS_QUEUE_H +@@ -628,7 +628,7 @@ + [#include <sys/types.h> + #include <sys/socket.h>]) + dnl +-AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc) ++AC_CHECK_FUNCS(chflags getrusage llseek lseek64 open64 getmntinfo strtoull strcasecmp srandom fchown mallinfo fdatasync strnlen strptime sysconf pathconf posix_memalign memalign valloc __secure_getenv prctl) + dnl + dnl Check to see if -lsocket is required (solaris) to make something + dnl that uses socket() to compile; this is needed for the UUID library +diff -ur e2fsprogs-1.37/debian/changelog e2fsprogs-1.37-patched/debian/changelog +--- e2fsprogs-1.37/debian/changelog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/debian/changelog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,20 @@ ++e2fsprogs (1.37-2) unstable; urgency=low ++ ++ * Fix filefrag so that it works non ext2/3 filesystems again. ++ (Closes: #303509) ++ * Make sure we include stdlib.h to fix a core dump bug in mke2fs on the ++ IA64 architecture (or other platforms where sizeof(ptr) > sizeof(int)) ++ (Closes: #302200) ++ * Add missing return values so that we don't return garbage in certain ++ error cases in ext2fs_write_new_inode() and ext2fs_read_int_block(). ++ * Fix minor spelling typo in the mke2fs man page ++ * Avoid doing the LOW_DTIME checks if the superblock last mount time ++ indicates that the system clock may not be set correctly. ++ * Add further paranoia checks to the blkid, ext2fs, and ss libraries to ++ make them safe to call from setuid or setgid applications. ++ ++ -- Theodore Y. Ts'o <tytso@mit.edu> Sat, 9 Apr 2005 11:08:04 -0400 ++ + e2fsprogs (1.37-1) unstable; urgency=low + + * New upstream release. +diff -ur e2fsprogs-1.37/e2fsck/ChangeLog e2fsprogs-1.37-patched/e2fsck/ChangeLog +--- e2fsprogs-1.37/e2fsck/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/e2fsck/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,9 @@ ++2005-04-06 Theodore Ts'o <tytso@mit.edu> ++ ++ * pass1.c (e2fsck_pass1): If the superblock last mount time (not ++ just the last write time) looks insane, then assume that ++ we can't do the LOW_DTIME checks. ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/e2fsck/pass1.c e2fsprogs-1.37-patched/e2fsck/pass1.c +--- e2fsprogs-1.37/e2fsck/pass1.c 2005-03-21 16:31:21.000000000 -0600 ++++ e2fsprogs-1.37-patched/e2fsck/pass1.c 2005-06-11 21:25:24.000000000 -0500 +@@ -518,7 +518,8 @@ + if (ctx->progress) + if ((ctx->progress)(ctx, 1, 0, ctx->fs->group_desc_count)) + return; +- if (fs->super->s_wtime < fs->super->s_inodes_count) ++ if ((fs->super->s_wtime < fs->super->s_inodes_count) || ++ (fs->super->s_mtime < fs->super->s_inodes_count)) + busted_fs_time = 1; + + while (1) { +diff -ur e2fsprogs-1.37/e2fsprogs.lsm e2fsprogs-1.37-patched/e2fsprogs.lsm +--- e2fsprogs-1.37/e2fsprogs.lsm 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/e2fsprogs.lsm 2005-06-11 21:25:24.000000000 -0500 +@@ -8,7 +8,7 @@ + Author: tytso@mit.edu (Theodore Tso) + Maintained-by: tytso@mit.edu (Theodore Tso) + Primary-site: download.sourceforge.net /pub/sourceforge/e2fsprogs +- 3192kB e2fsprogs-1.37.tar.gz ++ 3432kB e2fsprogs-1.37.tar.gz + 452kB e2fsprogs-libs-1.37.tar.gz + 1kB e2fsprogs-1.37.lsm + Alternate-site: +diff -ur e2fsprogs-1.37/lib/blkid/ChangeLog e2fsprogs-1.37-patched/lib/blkid/ChangeLog +--- e2fsprogs-1.37/lib/blkid/ChangeLog 2005-03-21 21:32:51.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/blkid/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,12 @@ ++2005-03-31 Theodore Ts'o <tytso@mit.edu> ++ ++ * cache.c (blkid_get_cache): Use a much more paranoid ++ safe_getenv() function which will ignore the BLKID_FILE ++ environment varaible if the application program is setgid ++ or on a Linux system, if kernel doesn't think the process ++ is eligible to create a core dump. Also if glibc has ++ __secure_getenv(), then use it. ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/lib/blkid/cache.c e2fsprogs-1.37-patched/lib/blkid/cache.c +--- e2fsprogs-1.37/lib/blkid/cache.c 2005-03-21 21:11:36.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/blkid/cache.c 2005-06-11 21:25:24.000000000 -0500 +@@ -10,12 +10,48 @@ + * %End-Header% + */ + ++#if HAVE_UNISTD_H ++#include <unistd.h> ++#endif ++#ifdef HAVE_ERRNO_H ++#include <errno.h> ++#endif + #include <stdlib.h> + #include <string.h> ++#ifdef HAVE_SYS_PRCTL_H ++#include <sys/prctl.h> ++#else ++#define PR_GET_DUMPABLE 3 ++#endif ++#if (!defined(HAVE_PRCTL) && defined(linux)) ++#include <sys/syscall.h> ++#endif + #include "blkidP.h" + + int blkid_debug_mask = 0; + ++ ++static char *safe_getenv(const char *arg) ++{ ++ if ((getuid() != geteuid()) || (getgid() != getgid())) ++ return NULL; ++#if HAVE_PRCTL ++ if (prctl(PR_GET_DUMPABLE) == 0) ++ return NULL; ++#else ++#if (defined(linux) && defined(SYS_prctl)) ++ if (syscall(SYS_prctl, PR_GET_DUMPABLE) == 0) ++ return NULL; ++#endif ++#endif ++ ++#ifdef HAVE___SECURE_GETENV ++ return __secure_getenv("BLKID_FILE"); ++#else ++ return getenv("BLKID_FILE"); ++#endif ++} ++ + int blkid_get_cache(blkid_cache *ret_cache, const char *filename) + { + blkid_cache cache; +@@ -41,8 +77,8 @@ + + if (filename && !strlen(filename)) + filename = 0; +- if (!filename && (getuid() == geteuid())) +- filename = getenv("BLKID_FILE"); ++ if (!filename) ++ filename = safe_getenv("BLKID_FILE"); + if (!filename) + filename = BLKID_CACHE_FILE; + cache->bic_filename = blkid_strdup(filename); +diff -ur e2fsprogs-1.37/lib/e2p/ChangeLog e2fsprogs-1.37-patched/lib/e2p/ChangeLog +--- e2fsprogs-1.37/lib/e2p/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/e2p/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,15 @@ ++2005-04-09 Theodore Ts'o <tytso@mit.edu> ++ ++ * ls.c: Add stdlib.h header file since list_super2() uses the ++ free() function. ++ ++2005-03-30 Theodore Ts'o <tytso@mit.edu> ++ ++ * ostype.c (e2p_os2string): Check to make sure malloc() is ++ successful before attempting to copy into it. Add ++ #include of stdlib.h to fix a core dump bug on the IA64 ++ architecture. (Addresses Debian Bug #302200) ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/lib/e2p/ls.c e2fsprogs-1.37-patched/lib/e2p/ls.c +--- e2fsprogs-1.37/lib/e2p/ls.c 2005-03-19 14:59:40.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/e2p/ls.c 2005-06-11 21:25:24.000000000 -0500 +@@ -12,6 +12,7 @@ + */ + + #include <stdio.h> ++#include <stdlib.h> + #include <sys/types.h> + #include <string.h> + #include <grp.h> +diff -ur e2fsprogs-1.37/lib/e2p/ostype.c e2fsprogs-1.37-patched/lib/e2p/ostype.c +--- e2fsprogs-1.37/lib/e2p/ostype.c 2005-03-19 00:17:09.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/e2p/ostype.c 2005-06-11 21:25:24.000000000 -0500 +@@ -9,6 +9,7 @@ + + #include "e2p.h" + #include <string.h> ++#include <stdlib.h> + + const char *os_tab[] = + { "Linux", +@@ -32,7 +33,8 @@ + os = "(unknown os)"; + + ret = malloc(strlen(os)+1); +- strcpy(ret, os); ++ if (ret) ++ strcpy(ret, os); + return ret; + } + +diff -ur e2fsprogs-1.37/lib/ext2fs/ChangeLog e2fsprogs-1.37-patched/lib/ext2fs/ChangeLog +--- e2fsprogs-1.37/lib/ext2fs/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ext2fs/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,16 @@ ++2005-04-09 Theodore Ts'o <tytso@mit.edu> ++ ++ * inode.c (ext2fs_write_new_inode), ++ ind_block.c (ext2fs_read_ind_block): Add missing return ++ value in error return case. (Otherwise we return garbage ++ instead of the error code.) ++ ++2005-03-31 Theodore Ts'o <tytso@mit.edu> ++ ++ * test_io.c (test_open): If called by a setuid/setgid or an ++ otherwise privileged program, be paranoid and ignore the ++ TEST_IO_* environment variables. ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/lib/ext2fs/ext2fs.h e2fsprogs-1.37-patched/lib/ext2fs/ext2fs.h +--- e2fsprogs-1.37/lib/ext2fs/ext2fs.h 2005-03-20 21:31:41.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ext2fs/ext2fs.h 2005-06-11 21:28:17.000000000 -0500 +@@ -61,6 +61,7 @@ + #include <stdio.h> + #include <stdlib.h> + ++#define EXT2_FLAT_INCLUDES + #if EXT2_FLAT_INCLUDES + #include "e2_types.h" + #include "ext2_fs.h" +diff -ur e2fsprogs-1.37/lib/ext2fs/ind_block.c e2fsprogs-1.37-patched/lib/ext2fs/ind_block.c +--- e2fsprogs-1.37/lib/ext2fs/ind_block.c 2005-01-05 22:15:49.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ext2fs/ind_block.c 2005-06-11 21:25:24.000000000 -0500 +@@ -32,7 +32,7 @@ + else { + retval = io_channel_read_blk(fs->io, blk, 1, buf); + if (retval) +- retval; ++ return retval; + } + #ifdef EXT2FS_ENABLE_SWAPFS + if (fs->flags & (EXT2_FLAG_SWAP_BYTES | EXT2_FLAG_SWAP_BYTES_READ)) { +diff -ur e2fsprogs-1.37/lib/ext2fs/inode.c e2fsprogs-1.37-patched/lib/ext2fs/inode.c +--- e2fsprogs-1.37/lib/ext2fs/inode.c 2005-03-21 00:10:13.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ext2fs/inode.c 2005-06-11 21:25:24.000000000 -0500 +@@ -724,7 +724,6 @@ + struct ext2_inode *inode) + { + struct ext2_inode *buf; +- errcode_t retval; + int size = EXT2_INODE_SIZE(fs->super); + struct ext2_inode_large *large_inode; + +@@ -743,7 +742,7 @@ + large_inode->i_extra_isize = sizeof(struct ext2_inode_large) - + EXT2_GOOD_OLD_INODE_SIZE; + +- retval = ext2fs_write_inode_full(fs, ino, buf, size); ++ return ext2fs_write_inode_full(fs, ino, buf, size); + } + + +diff -ur e2fsprogs-1.37/lib/ext2fs/test_io.c e2fsprogs-1.37-patched/lib/ext2fs/test_io.c +--- e2fsprogs-1.37/lib/ext2fs/test_io.c 2004-12-06 16:45:50.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ext2fs/test_io.c 2005-06-11 21:25:24.000000000 -0500 +@@ -22,6 +22,14 @@ + #if HAVE_SYS_TYPES_H + #include <sys/types.h> + #endif ++#ifdef HAVE_SYS_PRCTL_H ++#include <sys/prctl.h> ++#else ++#define PR_GET_DUMPABLE 3 ++#endif ++#if (!defined(HAVE_PRCTL) && defined(linux)) ++#include <sys/syscall.h> ++#endif + + #include "ext2_fs.h" + #include "ext2fs.h" +@@ -132,6 +140,27 @@ + abort(); + } + ++static char *safe_getenv(const char *arg) ++{ ++ if ((getuid() != geteuid()) || (getgid() != getgid())) ++ return NULL; ++#if HAVE_PRCTL ++ if (prctl(PR_GET_DUMPABLE) == 0) ++ return NULL; ++#else ++#if (defined(linux) && defined(SYS_prctl)) ++ if (syscall(SYS_prctl, PR_GET_DUMPABLE) == 0) ++ return NULL; ++#endif ++#endif ++ ++#ifdef HAVE___SECURE_GETENV ++ return __secure_getenv("BLKID_FILE"); ++#else ++ return getenv("BLKID_FILE"); ++#endif ++} ++ + static errcode_t test_open(const char *name, int flags, io_channel *channel) + { + io_channel io = NULL; +@@ -178,25 +207,25 @@ + data->write_byte = test_io_cb_write_byte; + + data->outfile = NULL; +- if ((value = getenv("TEST_IO_LOGFILE")) != NULL) ++ if ((value = safe_getenv("TEST_IO_LOGFILE")) != NULL) + data->outfile = fopen(value, "w"); + if (!data->outfile) + data->outfile = stderr; + + data->flags = 0; +- if ((value = getenv("TEST_IO_FLAGS")) != NULL) ++ if ((value = safe_getenv("TEST_IO_FLAGS")) != NULL) + data->flags = strtoul(value, NULL, 0); + + data->block = 0; +- if ((value = getenv("TEST_IO_BLOCK")) != NULL) ++ if ((value = safe_getenv("TEST_IO_BLOCK")) != NULL) + data->block = strtoul(value, NULL, 0); + + data->read_abort_count = 0; +- if ((value = getenv("TEST_IO_READ_ABORT")) != NULL) ++ if ((value = safe_getenv("TEST_IO_READ_ABORT")) != NULL) + data->read_abort_count = strtoul(value, NULL, 0); + + data->write_abort_count = 0; +- if ((value = getenv("TEST_IO_WRITE_ABORT")) != NULL) ++ if ((value = safe_getenv("TEST_IO_WRITE_ABORT")) != NULL) + data->write_abort_count = strtoul(value, NULL, 0); + + *channel = io; +diff -ur e2fsprogs-1.37/lib/ss/ChangeLog e2fsprogs-1.37-patched/lib/ss/ChangeLog +--- e2fsprogs-1.37/lib/ss/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ss/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,10 @@ ++2005-03-31 Theodore Ts'o <tytso@mit.edu> ++ ++ * get_readline.c (ss_get_readline), pager.c (ss_page_stdin): If ++ called by a setuid/setgid or an otherwise privileged ++ program, be paranoid and ignore the PAGER and ++ SS_READLINE_PATH environment variables. ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/lib/ss/get_readline.c e2fsprogs-1.37-patched/lib/ss/get_readline.c +--- e2fsprogs-1.37/lib/ss/get_readline.c 2003-12-07 11:11:38.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ss/get_readline.c 2005-06-11 21:25:24.000000000 -0500 +@@ -50,7 +50,7 @@ + if (info->readline_handle) + return; + +- libpath = getenv("SS_READLINE_PATH"); ++ libpath = ss_safe_getenv("SS_READLINE_PATH"); + if (!libpath) + libpath = DEFAULT_LIBPATH; + if (*libpath == 0 || !strcmp(libpath, "none")) +diff -ur e2fsprogs-1.37/lib/ss/pager.c e2fsprogs-1.37-patched/lib/ss/pager.c +--- e2fsprogs-1.37/lib/ss/pager.c 2003-12-07 11:11:38.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ss/pager.c 2005-06-11 21:25:24.000000000 -0500 +@@ -28,11 +28,40 @@ + #include <sys/types.h> + #include <sys/file.h> + #include <signal.h> ++#ifdef HAVE_SYS_PRCTL_H ++#include <sys/prctl.h> ++#else ++#define PR_GET_DUMPABLE 3 ++#endif ++#if (!defined(HAVE_PRCTL) && defined(linux)) ++#include <sys/syscall.h> ++#endif + + static char MORE[] = "more"; + extern char *_ss_pager_name; + extern char *getenv PROTOTYPE((const char *)); + ++char *ss_safe_getenv(const char *arg) ++{ ++ if ((getuid() != geteuid()) || (getgid() != getgid())) ++ return NULL; ++#if HAVE_PRCTL ++ if (prctl(PR_GET_DUMPABLE) == 0) ++ return NULL; ++#else ++#if (defined(linux) && defined(SYS_prctl)) ++ if (syscall(SYS_prctl, PR_GET_DUMPABLE) == 0) ++ return NULL; ++#endif ++#endif ++ ++#ifdef HAVE___SECURE_GETENV ++ return __secure_getenv("BLKID_FILE"); ++#else ++ return getenv("BLKID_FILE"); ++#endif ++} ++ + /* + * this needs a *lot* of work.... + * +@@ -89,7 +118,7 @@ + sigdelset(&mask, SIGINT); + sigprocmask(SIG_SETMASK, &mask, 0); + if (_ss_pager_name == (char *)NULL) { +- if ((_ss_pager_name = getenv("PAGER")) == (char *)NULL) ++ if ((_ss_pager_name = ss_safe_getenv("PAGER")) == (char *)NULL) + _ss_pager_name = MORE; + } + (void) execlp(_ss_pager_name, _ss_pager_name, (char *) NULL); +diff -ur e2fsprogs-1.37/lib/ss/ss_internal.h e2fsprogs-1.37-patched/lib/ss/ss_internal.h +--- e2fsprogs-1.37/lib/ss/ss_internal.h 2003-12-07 11:11:38.000000000 -0600 ++++ e2fsprogs-1.37-patched/lib/ss/ss_internal.h 2005-06-11 21:25:24.000000000 -0500 +@@ -89,6 +89,7 @@ + void ss_list_requests(int, char const * const *, int, pointer); + int ss_execute_command(int sci_idx, char *argv[]); + int ss_pager_create(void); ++char *ss_safe_getenv(const char *arg); + char **ss_rl_completion(const char *text, int start, int end); + + extern ss_data **_ss_table; +diff -ur e2fsprogs-1.37/misc/ChangeLog e2fsprogs-1.37-patched/misc/ChangeLog +--- e2fsprogs-1.37/misc/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/misc/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,13 @@ ++2005-04-09 Theodore Ts'o <tytso@mit.edu> ++ ++ * filefrag.c (frag_report): Don't abort filefrag if ++ EXT3_IOC_GETFLAGS ioctl is not supported, so that filefrag ++ can work on non-ext2/3 filesystems, as advertised. ++ (Addresses Debian Bug: #303509) ++ ++ * mke2fs.8.in: Fix minor spelling typo. (Addresses SourceForge ++ Bug #1177804) ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/misc/filefrag.c e2fsprogs-1.37-patched/misc/filefrag.c +--- e2fsprogs-1.37/misc/filefrag.c 2005-03-18 19:25:28.000000000 -0600 ++++ e2fsprogs-1.37-patched/misc/filefrag.c 2005-06-11 21:25:24.000000000 -0500 +@@ -110,11 +110,8 @@ + close(fd); + return; + } +- if (ioctl(fd, EXT3_IOC_GETFLAGS, &flags) < 0) { +- perror("EXT3_IOC_GETFLAGS"); +- close(fd); +- return; +- } ++ if (ioctl(fd, EXT3_IOC_GETFLAGS, &flags) < 0) ++ flags = 0; + if (flags & EXT3_EXTENTS_FL) { + printf("File is stored in extents format\n"); + is_ext2 = 0; +diff -ur e2fsprogs-1.37/misc/mke2fs.8.in e2fsprogs-1.37-patched/misc/mke2fs.8.in +--- e2fsprogs-1.37/misc/mke2fs.8.in 2005-01-05 10:12:19.000000000 -0600 ++++ e2fsprogs-1.37-patched/misc/mke2fs.8.in 2005-06-11 21:25:24.000000000 -0500 +@@ -305,7 +305,7 @@ + .B \-M + Set the last mounted directory for the filesystem. This might be useful + for the sake of utilities that key off of the last mounted directory to +-determine where the filesytem should be mounted. ++determine where the filesystem should be mounted. + .TP + .B \-n + causes mke2fs to not actually create a filesystem, but display what it +diff -ur e2fsprogs-1.37/tests/ChangeLog e2fsprogs-1.37-patched/tests/ChangeLog +--- e2fsprogs-1.37/tests/ChangeLog 2005-03-21 21:37:01.000000000 -0600 ++++ e2fsprogs-1.37-patched/tests/ChangeLog 2005-06-11 21:25:24.000000000 -0500 +@@ -1,3 +1,8 @@ ++2005-04-09 Theodore Ts'o <tytso@mit.edu> ++ ++ * test_script.in: Make the test script driver exit with a non-zero ++ status if there are any failed tests. ++ + 2005-03-21 Theodore Ts'o <tytso@mit.edu> + + * Release of E2fsprogs 1.37 +diff -ur e2fsprogs-1.37/tests/test_script.in e2fsprogs-1.37-patched/tests/test_script.in +--- e2fsprogs-1.37/tests/test_script.in 2005-01-17 18:13:38.000000000 -0600 ++++ e2fsprogs-1.37-patched/tests/test_script.in 2005-06-11 21:25:24.000000000 -0500 +@@ -59,3 +59,4 @@ + + echo "$num_ok tests succeeded $num_failed tests failed" + ++test "$num_failed" -eq 0 || exit 1 |