summaryrefslogtreecommitdiffstats
path: root/loader/loader.c
diff options
context:
space:
mode:
authorDavid Cantrell <dcantrell@redhat.com>2008-10-09 15:25:25 -1000
committerDavid Cantrell <dcantrell@redhat.com>2008-10-09 16:00:25 -1000
commit7cfa8bba6befad6746240fb91b4d91b2ef0a121c (patch)
tree1fb8e485f775d218c912e7c9a1a69ed4baaf2f70 /loader/loader.c
parent348be7454338b0ac28cda216e24610a189ca54bf (diff)
downloadanaconda-7cfa8bba6befad6746240fb91b4d91b2ef0a121c.tar.gz
anaconda-7cfa8bba6befad6746240fb91b4d91b2ef0a121c.tar.xz
anaconda-7cfa8bba6befad6746240fb91b4d91b2ef0a121c.zip
Do not segfault when going back to select a new interface (#465887)
If you pick the wrong interface in anaconda and NM times out, you are placed at the configure TCP/IP screen again. If you select Back, you can go back and pick another interface (if you have more than one). Users going back to select a new interface were seeing segfaults, which is not what we want.
Diffstat (limited to 'loader/loader.c')
-rw-r--r--loader/loader.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/loader/loader.c b/loader/loader.c
index c28218cf9..b10b22eba 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -1517,12 +1517,15 @@ static char *doLoaderMain(struct loaderData_s *loaderData,
}
/* populate netDev based on any kickstart data */
- if (loaderData->ipinfo_set) {
+ if (loaderData->ipinfo_set && dir != -1) {
iface.flags |= IFACE_FLAGS_IS_PRESET;
+ } else {
+ iface.flags &= ~IFACE_FLAGS_IS_PRESET;
}
- setupIfaceStruct(&iface, loaderData);
+ setupIfaceStruct(&iface, loaderData);
rc = readNetConfig(devName, &iface, loaderData->netCls, loaderData->method);
+
if (FL_NOIPV4(flags)) {
loaderData->ipinfo_set = 0;
} else {
@@ -1583,6 +1586,7 @@ static char *doLoaderMain(struct loaderData_s *loaderData,
if ((rc == LOADER_BACK) || (rc == LOADER_ERROR) ||
((dir == -1) && (rc == LOADER_NOOP))) {
+ needsNetwork = 1;
step = STEP_IFACE;
dir = -1;
break;