]> git.wh0rd.org - dump.git/blobdiff - restore/dirs.c
Fix some warn_unused_result compile warnings
[dump.git] / restore / dirs.c
index b049f49007801c6caa8c70d755b38ecce9dbc860..b987b6999bc69f09343201e2f596ed23db5e23fe 100644 (file)
@@ -42,7 +42,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: dirs.c,v 1.32 2005/05/02 15:10:46 stelian Exp $";
+       "$Id: dirs.c,v 1.36 2010/06/11 11:19:17 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -495,7 +495,7 @@ putent(struct direct *dp)
        if (dirloc + dp->d_reclen > DIRBLKSIZ) {
                ((struct direct *)(dirbuf + prev))->d_reclen =
                    DIRBLKSIZ - prev;
-               if ( fwrite(dirbuf, 1, DIRBLKSIZ, df) != DIRBLKSIZ )
+               if ( fwrite(dirbuf, DIRBLKSIZ, 1, df) != 1 )
                        err(1,"cannot write to file %s", dirfile);
                dirloc = 0;
        }
@@ -673,7 +673,7 @@ setdirmodes(int flags)
                fprintf(stderr, "directory mode, owner, and times not set\n");
                return;
        }
-       mf = fopen(modefile, "r");
+       mf = FOPEN(modefile, "r");
        if (mf == NULL) {
                warn("fopen");
                fprintf(stderr, "cannot open mode file %s\n", modefile);
@@ -683,13 +683,17 @@ setdirmodes(int flags)
        clearerr(mf);
        for (;;) {
                char xattr[XATTR_MAXSIZE];
-               (void) fread((char *)&node, 1, sizeof(struct modeinfo), mf);
-               if (feof(mf))
-                       break;
-               if (node.xattr) {
-                       (void) fread(xattr, 1, XATTR_MAXSIZE, mf);
+               if (fread((char *)&node, sizeof(struct modeinfo), 1, mf) != 1) {
                        if (feof(mf))
                                break;
+                       err(1, "fread");
+               }
+               if (node.xattr) {
+                       if (fread(xattr, XATTR_MAXSIZE, 1, mf) != 1) {
+                               if (feof(mf))
+                                       break;
+                               err(1, "fread");
+                       }
                }
                ep = lookupino(node.ino);
                if (command == 'i' || command == 'x') {
@@ -708,8 +712,13 @@ setdirmodes(int flags)
                        panic("cannot find directory inode %d\n", node.ino);
                } else {
                        cp = myname(ep);
-                       (void) chown(cp, node.uid, node.gid);
+                       if (chown(cp, node.uid, node.gid) < 0)
+                               warn("chown");
                        (void) chmod(cp, node.mode);
+                       utimes(cp, node.timep);
+                       if (node.xattr)
+                               xattr_extract(cp, xattr);
+                       ep->e_flags &= ~NEW;
                        if (node.flags)
 #ifdef __linux__
                                (void) lsetflags(cp, node.flags);
@@ -719,10 +728,6 @@ setdirmodes(int flags)
                                (void) chflags(cp, node.flags);
 #endif
 #endif
-                       utimes(cp, node.timep);
-                       if (node.xattr)
-                               xattr_extract(cp, xattr);
-                       ep->e_flags &= ~NEW;
                }
        }
        if (ferror(mf))
@@ -747,7 +752,7 @@ comparedirmodes(void)
                fprintf(stderr, "directory mode, owner, and times not set\n");
                return;
        }
-       mf = fopen(modefile, "r");
+       mf = FOPEN(modefile, "r");
        if (mf == NULL) {
                warn("fopen");
                fprintf(stderr, "cannot open mode file %s\n", modefile);
@@ -757,22 +762,26 @@ comparedirmodes(void)
        clearerr(mf);
        for (;;) {
                char xattr[XATTR_MAXSIZE];
-               (void) fread((char *)&node, 1, sizeof(struct modeinfo), mf);
-               if (feof(mf))
-                       break;
-               if (node.xattr) {
-                       (void) fread(xattr, 1, XATTR_MAXSIZE, mf);
+               if (fread((char *)&node, sizeof(struct modeinfo), 1, mf) != 1) {
                        if (feof(mf))
                                break;
+                       err(1, "fread");
+               }
+               if (node.xattr) {
+                       if (fread(xattr, XATTR_MAXSIZE, 1, mf) != 1) {
+                               if (feof(mf))
+                                       break;
+                               err(1, "fread");
+                       }
                }
                ep = lookupino(node.ino);
                if (ep == NULL) {
                        panic("cannot find directory inode %d\n", node.ino);
                } else {
-                       cp = myname(ep);
                        struct STAT sb;
                        unsigned long newflags;
 
+                       cp = myname(ep);
                        if (LSTAT(cp, &sb) < 0) {
                                warn("unable to stat %s", cp);
                                do_compare_error;
@@ -928,10 +937,10 @@ savemodeinfo(dump_ino_t ino, struct dinode *dip, char *xattr) {
        node.uid = dip->di_uid;
        node.gid = dip->di_gid;
        node.xattr = xattr ? 1 : 0;
-       if ( fwrite((char *)&node, 1, sizeof(struct modeinfo), mf) != sizeof(struct modeinfo) )
+       if ( fwrite((char *)&node, sizeof(struct modeinfo), 1, mf) != 1 )
                err(1,"cannot write to file %s", modefile);
        if (xattr)
-               if ( fwrite(xattr, 1, XATTR_MAXSIZE, mf) != XATTR_MAXSIZE)
+               if ( fwrite(xattr, XATTR_MAXSIZE, 1, mf) != 1 )
                        err(1,"cannot write to file %s", modefile);
 }