diff options
| author | David Cantrell <dcantrell@redhat.com> | 2008-06-27 03:25:34 -1000 |
|---|---|---|
| committer | David Cantrell <dcantrell@redhat.com> | 2008-06-27 03:25:38 -1000 |
| commit | 83389b2effe828debfbbcbebf87dbfd2cc12e361 (patch) | |
| tree | aeaffe2d818605590ffce1be6e894f861496fdd5 /loader2/loader.c | |
| parent | adfa32b7ae12e10545c927f71655aaef950013a0 (diff) | |
| download | anaconda-83389b2effe828debfbbcbebf87dbfd2cc12e361.tar.gz anaconda-83389b2effe828debfbbcbebf87dbfd2cc12e361.tar.xz anaconda-83389b2effe828debfbbcbebf87dbfd2cc12e361.zip | |
Per strtol(3) man page, set errno=0 before call.
From the NOTES section of strtol(3):
"Since strtol() can legitimately return 0, LONG_MAX, or
LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both
success and failure, the calling program should set errno
to 0 before the call, and then determine if an error
occurred by checking whether errno has a non-zero value
after the call."
Diffstat (limited to 'loader2/loader.c')
| -rw-r--r-- | loader2/loader.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/loader2/loader.c b/loader2/loader.c index 07dae795b..6edcd36fc 100644 --- a/loader2/loader.c +++ b/loader2/loader.c @@ -644,6 +644,7 @@ static void readNetInfo(struct loaderData_s ** ld) { loaderData->dns = strdup(vparm); if (!strncmp(vname, "MTU", 3)) { + errno = 0; loaderData->mtu = strtol(vparm, NULL, 10); if ((errno == ERANGE && (loaderData->mtu == LONG_MIN || @@ -949,6 +950,7 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData, else if (!strncasecmp(argv[i], "essid=", 6)) loaderData->essid = strdup(argv[i] + 6); else if (!strncasecmp(argv[i], "mtu=", 4)) { + errno = 0; loaderData->mtu = strtol(argv[i] + 4, NULL, 10); if ((errno == ERANGE && (loaderData->mtu == LONG_MIN || @@ -962,6 +964,7 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData, else if (!strncasecmp(argv[i], "wepkey=", 7)) loaderData->wepkey = strdup(argv[i] + 7); else if (!strncasecmp(argv[i], "linksleep=", 10)) { + errno = 0; num_link_checks = strtol(argv[i] + 10, NULL, 10); if ((errno == ERANGE && (num_link_checks == LONG_MIN || @@ -973,6 +976,7 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData, } } else if (!strncasecmp(argv[i], "nicdelay=", 9)) { + errno = 0; post_link_sleep = strtol(argv[i] + 9, NULL, 10); if ((errno == ERANGE && (post_link_sleep == LONG_MIN || @@ -984,6 +988,7 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData, } } else if (!strncasecmp(argv[i], "dhcptimeout=", 12)) { + errno = 0; loaderData->dhcpTimeout = strtol(argv[i] + 12, NULL, 10); if ((errno == ERANGE && (loaderData->dhcpTimeout == LONG_MIN || @@ -2072,6 +2077,7 @@ int main(int argc, char ** argv) { char *ret; ret = fgets(buf, 256, f); + errno = 0; pid = strtol(buf, NULL, 10); if ((errno == ERANGE && (pid == LONG_MIN || pid == LONG_MAX)) || |
