Ignore:
Timestamp:
Sep 10, 2009, 2:55:51 AM (15 years ago)
Author:
Bruno Cornec
Message:

call_program_and_get_last_line_of_output is now allocating memory and returning that string

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.10/mondo/src/mondorestore/mondorestore.c

    r2382 r2383  
    470470    log_it("Done loading config file; resizing ML");
    471471
    472     if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "noresize")) {
     472    tmp1 = call_program_and_get_last_line_of_output("cat " CMDLINE);
     473    if (strstr(tmp1, "noresize")) {
    473474        log_msg(1, "Not resizing mountlist.");
    474475    } else {
    475476        resize_mountlist_proportionately_to_suit_new_drives(mountlist);
    476477    }
     478    mr_free(tmp1);
     479
    477480    for (done = FALSE; !done;) {
    478481        log_it("About to edit mountlist");
     
    750753    int res = 0;
    751754    bool boot_loader_installed = FALSE;
    752   /** malloc **/
    753755    char *tmp = NULL;
     756    char *tmp1 = NULL;
    754757    char *flaws_str = NULL;
    755758
     
    762765    get_cfg_file_from_archive_or_bust();
    763766    load_mountlist(mountlist, g_mountlist_fname);   // in case read_cfg_file_into_bkpinfo updated the mountlist
    764     if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "noresize")) {
     767
     768    tmp = call_program_and_get_last_line_of_output("cat " CMDLINE);
     769    if (strstr(tmp, "noresize")) {
    765770        log_msg(2, "Not resizing mountlist.");
    766771    } else {
    767772        resize_mountlist_proportionately_to_suit_new_drives(mountlist);
    768773    }
     774    mr_free(tmp);
     775
    769776    flaws_str = evaluate_mountlist(mountlist, &res);
    770777    if (!res) {
     
    795802            twenty_seconds_til_yikes();
    796803            g_fprep = fopen("/tmp/prep.sh", "w");
    797             if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "nopart")) {
    798                 log_msg(2,
    799                         "Not partitioning drives due to 'nopart' option.");
     804            tmp = call_program_and_get_last_line_of_output("cat " CMDLINE);
     805            if (strstr(tmp, "nopart")) {
     806                log_msg(2, "Not partitioning drives due to 'nopart' option.");
    800807                res = 0;
    801808            } else {
    802809                res = partition_everything(mountlist);
    803810                if (res) {
    804                     log_to_screen
    805                         ("Warning. Errors occurred during partitioning.");
     811                    log_to_screen("Warning. Errors occurred during partitioning.");
    806812                    res = 0;
    807813                }
    808814            }
     815            mr_free(tmp);
     816
    809817            retval += res;
    810818            if (!res) {
     
    867875
    868876  after_the_nuke:
     877    tmp1 = call_program_and_get_last_line_of_output("cat " CMDLINE);
    869878    if (retval) {
    870879        log_to_screen("Errors occurred during the nuke phase.");
    871     } else if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "RESTORE")) {
    872         log_to_screen
    873             ("PC was restored successfully. Thank you for using Mondo Rescue.");
    874         log_to_screen
    875             ("Please visit our website at http://www.mondorescue.org for more information.");
     880    } else if (tmp1, "RESTORE")) {
     881        log_to_screen("PC was restored successfully. Thank you for using Mondo Rescue.");
     882        log_to_screen("Please visit our website at http://www.mondorescue.org for more information.");
    876883    } else {
    877884        mr_asprintf(tmp,"%s","Mondo has restored your system.\n\nPlease wait for the command prompt. Then remove the backup media and reboot.\n\nPlease visit our website at http://www.mondorescue.org for more information.");
     
    882889        log_to_screen("Please visit our website at http://www.mondorescue.org for more information.");
    883890    }
     891    mr_free(tmp1);
     892
    884893    g_I_have_just_nuked = TRUE;
    885894    return (retval);
     
    26182627    /* Configure global variables */
    26192628    malloc_libmondo_global_strings();
    2620     if (strstr(call_program_and_get_last_line_of_output("cat " CMDLINE), "textonly"))
    2621     {
     2629    tmp1 = call_program_and_get_last_line_of_output("cat " CMDLINE);
     2630    if (strstr(tmp1, "textonly")) {
    26222631        g_text_mode = TRUE;
    26232632        log_msg(1, "TEXTONLY MODE");
     
    26252634        g_text_mode = FALSE;
    26262635    }                           // newt :-)
     2636    mr_free(tmp1);
    26272637
    26282638    /* Init GUI */
    26292639    setup_newt_stuff();         /* call newtInit and setup screen log */
    26302640
    2631     strcpy(g_mondo_home, call_program_and_get_last_line_of_output("which mondorestore"));
     2641    tmp1 = call_program_and_get_last_line_of_output("which mondorestore");
     2642    strcpy(g_mondo_home, tmp1);
     2643    mr_free(tmp1);
     2644
    26322645    g_current_media_number = 1; // precaution
    26332646
Note: See TracChangeset for help on using the changeset viewer.