Looks good. Ack. -- Martin SivÃk msivak@xxxxxxxxxx Red Hat Czech Anaconda team / Brno, CZ ----- Original Message ----- > --- > loader/cdinstall.c | 27 +++++++++++++-------------- > loader/cdinstall.h | 1 + > loader/loader.c | 1 + > 3 files changed, 15 insertions(+), 14 deletions(-) > > diff --git a/loader/cdinstall.c b/loader/cdinstall.c > index 161def7..e1e5fe7 100644 > --- a/loader/cdinstall.c > +++ b/loader/cdinstall.c > @@ -191,13 +191,18 @@ static void wrongCDMessage(void) { > } > > /* ask about doing media check */ > -static void queryCDMediaCheck(char *dev) { > +void queryCDMediaCheck(char *instRepo) { > int rc; > + char *tmp, *device; > > /* dont bother to test in automated installs */ > if (FL_KICKSTART(flags) && !FL_MEDIACHECK(flags)) > return; > > + /* Skip over the leading "cdrom://". */ > + tmp = instRepo+8; > + checked_asprintf(&device, "%.*s", (int) (strchr(tmp, ':')-tmp), > tmp); > + > /* see if we should check image(s) */ > /* in rescue mode only test if they explicitly asked to */ > if (!FL_RESCUE(flags) || FL_MEDIACHECK(flags)) { > @@ -213,18 +218,18 @@ static void queryCDMediaCheck(char *dev) { > * remount to pretend nothing ever happened. > */ > umount("/mnt/source"); > - mediaCheckCdrom(dev); > + mediaCheckCdrom(device); > > do { > - if (doPwMount(dev, "/mnt/source", "iso9660", "ro", NULL)) { > - ejectCdrom(dev); > + if (doPwMount(device, "/mnt/source", "iso9660", "ro", NULL)) { > + ejectCdrom(device); > wrongCDMessage(); > continue; > } > > if (access("/mnt/source/.discinfo", R_OK)) { > umount("/mnt/source"); > - ejectCdrom(dev); > + ejectCdrom(device); > wrongCDMessage(); > continue; > } > @@ -233,6 +238,8 @@ static void queryCDMediaCheck(char *dev) { > } while (1); > } > } > + > + free(device); > } > > int findInstallCD(struct loaderData_s *loaderData) { > @@ -314,20 +321,12 @@ int findInstallCD(struct loaderData_s > *loaderData) { > > int promptForCdrom(struct loaderData_s *loaderData) { > int rc; > - char *cddev = NULL, *colon, *start; > > do { > rc = findInstallCD(loaderData); > > if (loaderData->instRepo && rc == LOADER_OK) { > - /* Skip over the leading cdrom:// */ > - start = loaderData->instRepo+8; > - colon = strchr(start, ':'); > - > - /* Then grab just the device portion out of the instRepo string. */ > - cddev = strndup(start, colon-start); > - queryCDMediaCheck(cddev); > - free(cddev); > + queryCDMediaCheck(loaderData->instRepo); > return rc; > } else { > char * buf; > diff --git a/loader/cdinstall.h b/loader/cdinstall.h > index 6666b03..f883e7a 100644 > --- a/loader/cdinstall.h > +++ b/loader/cdinstall.h > @@ -25,6 +25,7 @@ > int findInstallCD(struct loaderData_s *loaderData); > int promptForCdrom(struct loaderData_s *loaderData); > int loadCdromImages(struct loaderData_s *loaderData); > +void queryCDMediaCheck(char *instRepo); > > int kickstartFromCD(char *kssrc); > #endif > diff --git a/loader/loader.c b/loader/loader.c > index 644c1e8..dcdedc9 100644 > --- a/loader/loader.c > +++ b/loader/loader.c > @@ -1284,6 +1284,7 @@ static void doLoaderMain(struct loaderData_s > *loaderData, > */ > if (!FL_ASKMETHOD(flags) && !loaderData->instRepo && > findInstallCD(loaderData) == LOADER_OK) { > logMessage(DEBUGLVL, "Found installation media, so skipping lang and > kbd"); > + queryCDMediaCheck(loaderData->instRepo); > skipLangKbd = 1; > flags |= LOADER_FLAGS_NOPASS; > } > -- > 1.7.1.1 > > _______________________________________________ > Anaconda-devel-list mailing list > Anaconda-devel-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/anaconda-devel-list _______________________________________________ Anaconda-devel-list mailing list Anaconda-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/anaconda-devel-list