with 2.4 kernel headers, lo_file_name is char, but with 2.6
authorEric Andersen <andersen@codepoet.org>
Mon, 30 Jan 2006 17:30:22 +0000 (17:30 -0000)
committerEric Andersen <andersen@codepoet.org>
Mon, 30 Jan 2006 17:30:22 +0000 (17:30 -0000)
headers we get a u8 for lo_file_name, so always cast to (char *)
when treating it as such.

libbb/loop.c

index 09b2beaa7be202391f6efb51293cea4b9e60c458..81dfca4d1ec10d41702e4c34e233d2a8ba19a425 100644 (file)
@@ -60,7 +60,7 @@ char *query_loop(const char *device)
        if ((fd = open(device, O_RDONLY)) < 0) return 0;
        if (!ioctl(fd, BB_LOOP_GET_STATUS, &loopinfo))
                dev=bb_xasprintf("%ld %s", (long) loopinfo.lo_offset,
-                               loopinfo.lo_file_name);
+                               (char *)loopinfo.lo_file_name);
        close(fd);
 
        return dev;
@@ -114,7 +114,7 @@ int set_loop(char **device, const char *file, int offset)
                /* If device free, claim it.  */
                if(rc && errno==ENXIO) {
                        memset(&loopinfo, 0, sizeof(loopinfo));
-                       safe_strncpy(loopinfo.lo_file_name, file, LO_NAME_SIZE);
+                       safe_strncpy((char *)loopinfo.lo_file_name, file, LO_NAME_SIZE);
                        loopinfo.lo_offset = offset;
                        /* Associate free loop device with file.  */
                        if(!ioctl(dfd, LOOP_SET_FD, ffd) &&
@@ -125,7 +125,7 @@ int set_loop(char **device, const char *file, int offset)
                   file isn't pretty either.  In general, mounting the same file twice
                   without using losetup manually is problematic.)
                 */
-               } else if(strcmp(file,loopinfo.lo_file_name)
+               } else if(strcmp(file,(char *)loopinfo.lo_file_name)
                                        || offset!=loopinfo.lo_offset) rc=-1;
                close(dfd);
 try_again: