summaryrefslogtreecommitdiffstats
path: root/loader2/loader.c
diff options
context:
space:
mode:
authorDavid Cantrell <dcantrell@redhat.com>2008-06-27 03:25:34 -1000
committerDavid Cantrell <dcantrell@redhat.com>2008-06-27 03:25:38 -1000
commit83389b2effe828debfbbcbebf87dbfd2cc12e361 (patch)
treeaeaffe2d818605590ffce1be6e894f861496fdd5 /loader2/loader.c
parentadfa32b7ae12e10545c927f71655aaef950013a0 (diff)
downloadanaconda-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.c6
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)) ||