X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=dump%2Ftraverse.c;h=2517e0223bb916482f5419e5171407e074bb2636;hb=c5886bd7f853af3e68dc239b705d01f99412a693;hp=0865527eb9e69334a81f26f7f5e2d194bf86ead8;hpb=df9ae507502f413c72119dde6ea3d35c91dba5bf;p=dump.git diff --git a/dump/traverse.c b/dump/traverse.c index 0865527..2517e02 100644 --- a/dump/traverse.c +++ b/dump/traverse.c @@ -40,7 +40,7 @@ #ifndef lint static const char rcsid[] = - "$Id: traverse.c,v 1.6 1999/10/13 09:57:20 stelian Exp $"; + "$Id: traverse.c,v 1.8 1999/11/17 22:46:43 tiniou Exp $"; #endif /* not lint */ #include @@ -93,7 +93,6 @@ typedef long fsizeT; #ifdef __linux__ static int searchdir __P((struct ext2_dir_entry *dp, int offset, int blocksize, char *buf, void *private)); -loff_t llseek (int fd, loff_t offset, int origin); #else static int dirindir __P((ino_t ino, daddr_t blkno, int level, long *size)); static void dmpindir __P((ino_t ino, daddr_t blk, int level, fsizeT *size)); @@ -699,7 +698,7 @@ convert_dir(struct ext2_dir_entry *dirent, int offset, int blocksize, char *buf, p = (struct convert_dir_context *)private; - reclen = EXT2_DIR_REC_LEN(dirent->name_len + 1); + reclen = EXT2_DIR_REC_LEN((dirent->name_len & 0xFF) + 1); if (((p->offset + reclen - 1) / p->bs) != (p->offset / p->bs)) { dp = (struct direct *)(p->buf + p->prev_offset); dp->d_reclen += p->bs - (p->offset % p->bs); @@ -710,8 +709,8 @@ convert_dir(struct ext2_dir_entry *dirent, int offset, int blocksize, char *buf, dp->d_ino = dirent->inode; dp->d_reclen = reclen; dp->d_type = 0; - dp->d_namlen = dirent->name_len; - strncpy(dp->d_name, dirent->name, dirent->name_len); + dp->d_namlen = dirent->name_len & 0xFF; + strncpy(dp->d_name, dirent->name, dp->d_namlen); dp->d_name[dp->d_namlen] = '\0'; p->prev_offset = p->offset; p->offset += reclen; @@ -1013,8 +1012,8 @@ bread(daddr_t blkno, char *buf, int size) loop: #ifdef __linux__ - if (llseek(diskfd, ((ext2_loff_t)blkno << dev_bshift), 0) != - ((ext2_loff_t)blkno << dev_bshift)) + if (ext2fs_llseek(diskfd, (((ext2_loff_t)blkno) << dev_bshift), 0) != + (((ext2_loff_t)blkno) << dev_bshift)) #else if (lseek(diskfd, ((off_t)blkno << dev_bshift), 0) != ((off_t)blkno << dev_bshift)) @@ -1059,8 +1058,8 @@ loop: memset(buf, 0, size); for (i = 0; i < size; i += dev_bsize, buf += dev_bsize, blkno++) { #ifdef __linux__ - if (llseek(diskfd, ((ext2_loff_t)blkno << dev_bshift), 0) != - ((ext2_loff_t)blkno << dev_bshift)) + if (ext2fs_llseek(diskfd, (((ext2_loff_t)blkno) << dev_bshift), 0) != + (((ext2_loff_t)blkno) << dev_bshift)) #else if (lseek(diskfd, ((off_t)blkno << dev_bshift), 0) != ((off_t)blkno << dev_bshift))