diff options
author | David Cantrell <dcantrell@redhat.com> | 2008-10-09 15:25:25 -1000 |
---|---|---|
committer | David Cantrell <dcantrell@redhat.com> | 2008-10-09 16:00:25 -1000 |
commit | 7cfa8bba6befad6746240fb91b4d91b2ef0a121c (patch) | |
tree | 1fb8e485f775d218c912e7c9a1a69ed4baaf2f70 /loader/loader.c | |
parent | 348be7454338b0ac28cda216e24610a189ca54bf (diff) | |
download | anaconda-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.c | 8 |
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; |