diff options
author | David Cantrell <dcantrell@redhat.com> | 2010-05-25 04:36:00 -1000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2010-05-25 09:05:40 -1000 |
commit | 2ebe486413f16e7850a4a5551416aca48edc0ca2 (patch) | |
tree | ec8110ad2c92940bb4454cb6d6f9d0993f8ed327 | |
parent | 43f1591f52bcf01571593b38a0bc1ff785d922c8 (diff) | |
download | anaconda-2ebe486413f16e7850a4a5551416aca48edc0ca2.tar.gz anaconda-2ebe486413f16e7850a4a5551416aca48edc0ca2.tar.xz anaconda-2ebe486413f16e7850a4a5551416aca48edc0ca2.zip |
Correct problem with initrd.addrsize generation (#546422)
The last write() line was writing out the addr value again instead of
size. Also include libgen.h for basename() call and lose the char *
we never use from the strtoul() call.
-rw-r--r-- | utils/addrsize.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/utils/addrsize.c b/utils/addrsize.c index 5933a0036..be3bd97f8 100644 --- a/utils/addrsize.c +++ b/utils/addrsize.c @@ -32,6 +32,7 @@ #include <unistd.h> #include <errno.h> #include <string.h> +#include <libgen.h> int main(int argc,char **argv) { char *cmd = basename(argv[0]); @@ -39,7 +40,6 @@ int main(int argc,char **argv) { struct stat initrd_stat; unsigned int addr = 0, size = 0, zero = 0; int fd, rc; - char *tmp = NULL; mode_t mode = S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH; if (argc != 4) { @@ -59,7 +59,7 @@ int main(int argc,char **argv) { return 2; } - addr = htonl(strtoul(address, &tmp, 0)); + addr = htonl(strtoul(address, NULL, 0)); size = htonl(initrd_stat.st_size); fd = open(output, O_CREAT | O_RDWR, mode); @@ -69,7 +69,7 @@ int main(int argc,char **argv) { } if (write(fd, &addr, sizeof(int)) == -1) { - perror("writing initrd.addr (zero) "); + perror("writing initrd.addr (addr) "); return 4; } @@ -78,8 +78,8 @@ int main(int argc,char **argv) { return 5; } - if (write(fd, &addr, sizeof(int)) == -1) { - perror("writing initrd.addr (zero) "); + if (write(fd, &size, sizeof(int)) == -1) { + perror("writing initrd.addr (size) "); return 6; } |