Whamcloud - gitweb
ChangeLog, ls.c:
authorTheodore Ts'o <tytso@mit.edu>
Mon, 9 Mar 1998 13:07:09 +0000 (13:07 +0000)
committerTheodore Ts'o <tytso@mit.edu>
Mon, 9 Mar 1998 13:07:09 +0000 (13:07 +0000)
  Mask off high 8 bits from dirent->name_len.
Many files:
  The ext2 version and flags ioctl's take an int *, not a long *.  Fix
  library to use the correct type, so we don't have problems on the
  Alpha.

debugfs/ChangeLog
debugfs/ls.c
lib/e2p/ChangeLog
lib/e2p/fgetflags.c
lib/e2p/fgetversion.c
lib/e2p/fsetflags.c
lib/e2p/fsetversion.c
lib/e2p/getflags.c
lib/e2p/getversion.c
lib/e2p/setflags.c
lib/e2p/setversion.c

index ce82acf..2118556 100644 (file)
@@ -1,3 +1,8 @@
+Sun Mar  8 22:53:04 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * ls.c (list_dir_proc): Mask off high 8 bits from
+               dirent->name_len.
+
 Mon Dec  1 13:21:09 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Makefile.in: Install debugfs in /sbin, instead of /usr/sbin.
index fe6df0a..2f5c83a 100644 (file)
@@ -84,8 +84,8 @@ static int list_dir_proc(struct ext2_dir_entry *dirent,
        struct list_dir_struct *ls = (struct list_dir_struct *) private;
        int     thislen;
 
-       thislen = (dirent->name_len < EXT2_NAME_LEN) ? dirent->name_len :
-               EXT2_NAME_LEN;
+       thislen = ((dirent->name_len & 0xFF) < EXT2_NAME_LEN) ?
+               (dirent->name_len & 0xFF) : EXT2_NAME_LEN;
        strncpy(name, dirent->name, thislen);
        name[thislen] = '\0';
 
index 28f5698..e05fe2e 100644 (file)
@@ -1,3 +1,11 @@
+Mon Mar  9 08:05:30 1998  Theodore Ts'o  <tytso@rsts-11.mit.edu>
+
+       * fgetflags.c, fgetversion.c, fsetflags.c, fsetversion.c,
+               getflags.c, getversion.c, setflags.c, setversion.c:
+               The ext2 version and flags ioctl's take an int *, not a
+               long *.  Fix library to use the correct type, so we don't
+               have problems on the Alpha.
+
 Tue Jun 17 01:33:20 1997  Theodore Ts'o  <tytso@rsts-11.mit.edu>
 
        * Release of E2fsprogs 1.11
index f01de26..bb3fd2e 100644 (file)
 int fgetflags (const char * name, unsigned long * flags)
 {
 #if HAVE_STAT_FLAGS
-  struct stat buf;
+       struct stat buf;
 
-  if (stat (name, &buf) == -1)
-    return -1;
+       if (stat (name, &buf) == -1)
+               return -1;
 
-  *flags = 0;
+       *flags = 0;
 #ifdef UF_IMMUTABLE
-  if (buf.st_flags & UF_IMMUTABLE)
-    *flags |= EXT2_IMMUTABLE_FL;
+       if (buf.st_flags & UF_IMMUTABLE)
+               *flags |= EXT2_IMMUTABLE_FL;
 #endif
 #ifdef UF_APPEND
-  if (buf.st_flags & UF_APPEND)
-    *flags |= EXT2_APPEND_FL;
+       if (buf.st_flags & UF_APPEND)
+               *flags |= EXT2_APPEND_FL;
 #endif
 #ifdef UF_NODUMP
-  if (buf.st_flags & UF_NODUMP)
-    *flags |= EXT2_NODUMP_FL;
+       if (buf.st_flags & UF_NODUMP)
+               *flags |= EXT2_NODUMP_FL;
 #endif
 
-  return 0;
+       return 0;
 #else
 #if HAVE_EXT2_IOCTLS
-       int fd;
-       int r;
+       int fd, r, f;
 
        fd = open (name, O_RDONLY|O_NONBLOCK);
        if (fd == -1)
                return -1;
-       r = ioctl (fd, EXT2_IOC_GETFLAGS, flags);
+       r = ioctl (fd, EXT2_IOC_GETFLAGS, &f);
+       *flags = f;
 
        close (fd);
        return r;
index fea376b..525081e 100644 (file)
 int fgetversion (const char * name, unsigned long * version)
 {
 #if HAVE_EXT2_IOCTLS
-       int fd;
-       int r;
+       int fd, r, ver;
 
        fd = open (name, O_RDONLY|O_NONBLOCK);
        if (fd == -1)
                return - 1;
-       r = ioctl (fd, EXT2_IOC_GETVERSION, version);
+       r = ioctl (fd, EXT2_IOC_GETVERSION, ver);
+       *version = ver;
        close (fd);
        return r;
 #else /* ! HAVE_EXT2_IOCTLS */
index 92e558b..5c76083 100644 (file)
 int fsetflags (const char * name, unsigned long flags)
 {
 #if HAVE_CHFLAGS
-  unsigned long bsd_flags = 0;
+       unsigned long bsd_flags = 0;
 
 #ifdef UF_IMMUTABLE
-  if (flags & EXT2_IMMUTABLE_FL)
-    bsd_flags |= UF_IMMUTABLE;
+       if (flags & EXT2_IMMUTABLE_FL)
+               bsd_flags |= UF_IMMUTABLE;
 #endif
 #ifdef UF_APPEND
-  if (flags & EXT2_APPEND_FL)
-    bsd_flags |= UF_APPEND;
+       if (flags & EXT2_APPEND_FL)
+               bsd_flags |= UF_APPEND;
 #endif
 #ifdef UF_NODUMP
-  if (flags & EXT2_NODUMP_FL)
-    bsd_flags |= UF_NODUMP;
+       if (flags & EXT2_NODUMP_FL)
+               bsd_flags |= UF_NODUMP;
 #endif
 
-  return chflags (name, bsd_flags);
+       return chflags (name, bsd_flags);
 #else
 #if HAVE_EXT2_IOCTLS
-       int fd;
-       int r;
+       int fd, r, f;
 
        fd = open (name, O_RDONLY|O_NONBLOCK);
        if (fd == -1)
                return -1;
-       r = ioctl (fd, EXT2_IOC_SETFLAGS, &flags);
+       f = (int) flags;
+       r = ioctl (fd, EXT2_IOC_SETFLAGS, &f);
        close (fd);
        return r;
 #else /* ! HAVE_EXT2_IOCTLS */
index 49c7c36..428e6e9 100644 (file)
 int fsetversion (const char * name, unsigned long version)
 {
 #if HAVE_EXT2_IOCTLS
-       int fd;
-       int r;
+       int fd, r, ver;
 
        fd = open (name, O_RDONLY|O_NONBLOCK);
        if (fd == -1)
                return -1;
-       r = ioctl (fd, EXT2_IOC_SETVERSION, &version);
+       ver = (int) version;
+       r = ioctl (fd, EXT2_IOC_SETVERSION, &ver);
        close (fd);
        return r;
 #else /* ! HAVE_EXT2_IOCTLS */
index 8c476a3..477cb9b 100644 (file)
 int getflags (int fd, unsigned long * flags)
 {
 #if HAVE_STAT_FLAGS
-  struct stat buf;
+       struct stat buf;
 
-  if (fstat (fd, &buf) == -1)
-    return -1;
+       if (fstat (fd, &buf) == -1)
+               return -1;
 
-  *flags = 0;
+       *flags = 0;
 #ifdef UF_IMMUTABLE
-  if (buf.st_flags & UF_IMMUTABLE)
-    *flags |= EXT2_IMMUTABLE_FL;
+       if (buf.st_flags & UF_IMMUTABLE)
+               *flags |= EXT2_IMMUTABLE_FL;
 #endif
 #ifdef UF_APPEND
-  if (buf.st_flags & UF_APPEND)
-    *flags |= EXT2_APPEND_FL;
+       if (buf.st_flags & UF_APPEND)
+               *flags |= EXT2_APPEND_FL;
 #endif
 #ifdef UF_NODUMP
-  if (buf.st_flags & UF_NODUMP)
-    *flags |= EXT2_NODUMP_FL;
+       if (buf.st_flags & UF_NODUMP)
+               *flags |= EXT2_NODUMP_FL;
 #endif
 
-  return 0;
+       return 0;
 #else
 #if HAVE_EXT2_IOCTLS
-       return ioctl (fd, EXT2_IOC_GETFLAGS, flags);
+       int r, f;
+       
+       r = ioctl (fd, EXT2_IOC_GETFLAGS, &f);
+       *flags = f;
+       return r;
 #else /* ! HAVE_EXT2_IOCTLS */
        extern int errno;
        errno = EOPNOTSUPP;
index be76b60..4eb5d4c 100644 (file)
 int getversion (int fd, unsigned long * version)
 {
 #if HAVE_EXT2_IOCTLS
-       return ioctl (fd, EXT2_IOC_GETVERSION, version);
+       int     r, ver;
+       
+       r = ioctl (fd, EXT2_IOC_GETVERSION, &ver);
+       *version = ver;
 #else /* ! HAVE_EXT2_IOCTLS */
        extern int errno;
        errno = EOPNOTSUPP;
index 654ec9d..2bf47fa 100644 (file)
 int setflags (int fd, unsigned long flags)
 {
 #if HAVE_CHFLAGS
-  unsigned long bsd_flags = 0;
+       unsigned long bsd_flags = 0;
 
 #ifdef UF_IMMUTABLE
-  if (flags & EXT2_IMMUTABLE_FL)
-    bsd_flags |= UF_IMMUTABLE;
+       if (flags & EXT2_IMMUTABLE_FL)
+               bsd_flags |= UF_IMMUTABLE;
 #endif
 #ifdef UF_APPEND
-  if (flags & EXT2_APPEND_FL)
-    bsd_flags |= UF_APPEND;
+       if (flags & EXT2_APPEND_FL)
+               bsd_flags |= UF_APPEND;
 #endif
 #ifdef UF_NODUMP
-  if (flags & EXT2_NODUMP_FL)
-    bsd_flags |= UF_NODUMP;
+       if (flags & EXT2_NODUMP_FL)
+               bsd_flags |= UF_NODUMP;
 #endif
 
-  return fchflags (fd, bsd_flags);
+       return fchflags (fd, bsd_flags);
 #else
 #if HAVE_EXT2_IOCTLS
-       return ioctl (fd, EXT2_IOC_SETFLAGS, &flags);
+       int     f;
+
+       f = (int) flags;
+       return ioctl (fd, EXT2_IOC_SETFLAGS, &f);
 #else /* ! HAVE_EXT2_IOCTLS */
        extern int errno;
        errno = EOPNOTSUPP;
index 3210f51..bd00df6 100644 (file)
 int setversion (int fd, unsigned long version)
 {
 #if HAVE_EXT2_IOCTLS
-       return ioctl (fd, EXT2_IOC_SETVERSION, &version);
+       int ver;
+
+       ver = (int) version;
+       return ioctl (fd, EXT2_IOC_SETVERSION, &ver);
 #else /* ! HAVE_EXT2_IOCTLS */
        extern int errno;
        errno = EOPNOTSUPP;