Ignore:
Timestamp:
Aug 18, 2009, 5:28:18 PM (15 years ago)
Author:
Bruno Cornec
Message:

r3369@localhost: bruno | 2009-08-18 16:57:27 +0200

  • Transform bout 100 strcpy in dyn. allocation. Quality is improving
  • function figure_out_kernel_path_interactively_if_necessary now return a dynamically allocated string
  • mondoarchive checked with valgrind in text an newt modes
File:
1 edited

Legend:

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

    r2331 r2334  
    192192    char *incoming;
    193193    char *command;
    194     char *lvscan_sz;
    195     char *lvremove_sz;
    196     char *pvscan_sz;
    197     char *vgscan_sz;
    198     char *vgcreate_sz;
    199     char *vgchange_sz;
    200     char *vgremove_sz;
    201 //  char *do_this_last;
     194    char *lvscan_sz = NULL;
     195    char *lvremove_sz = NULL;
     196    char *pvscan_sz = NULL;
     197    char *vgscan_sz = NULL;
     198    char *vgchange_sz = NULL;
     199    char *vgremove_sz = NULL;
    202200
    203201    /** char **************************************************/
     
    229227    malloc_string(tmp);
    230228    malloc_string(incoming);
    231     malloc_string(lvscan_sz);
    232     malloc_string(lvremove_sz);
    233     malloc_string(vgscan_sz);
    234     malloc_string(pvscan_sz);
    235     malloc_string(vgcreate_sz);
    236     malloc_string(vgchange_sz);
    237     malloc_string(vgremove_sz);
    238     command = malloc(512);
     229    command = malloc(1024);
    239230
    240231    log_it("STARTING");
     
    243234    if (tmp1)   // found it :) cool
    244235    {
    245         strcpy(lvscan_sz, "lvm lvscan");
    246         strcpy(lvremove_sz, "lvm lvremove");
    247         strcpy(vgscan_sz, "lvm vgscan");
    248         strcpy(pvscan_sz, "lvm pvscan");
    249         strcpy(vgcreate_sz, "lvm vgcreate");
    250         strcpy(vgchange_sz, "lvm vgchange");
    251         strcpy(vgremove_sz, "lvm vgremove -f");
     236        mr_asprintf(lvscan_sz, "lvm lvscan");
     237        mr_asprintf(lvremove_sz, "lvm lvremove");
     238        mr_asprintf(vgscan_sz, "lvm vgscan");
     239        mr_asprintf(pvscan_sz, "lvm pvscan");
     240        mr_asprintf(vgchange_sz, "lvm vgchange");
     241        mr_asprintf(vgremove_sz, "lvm vgremove -f");
    252242    } else {
    253         strcpy(lvscan_sz, "lvscan");
    254         strcpy(lvremove_sz, "lvremove");
    255         strcpy(vgscan_sz, "vgscan");
    256         strcpy(pvscan_sz, "pvscan");
    257         strcpy(vgcreate_sz, "vgcreate");
    258         strcpy(vgchange_sz, "vgchange");
    259         strcpy(vgremove_sz, "vgremove");
     243        mr_asprintf(lvscan_sz, "lvscan");
     244        mr_asprintf(lvremove_sz, "lvremove");
     245        mr_asprintf(vgscan_sz, "vgscan");
     246        mr_asprintf(pvscan_sz, "pvscan");
     247        mr_asprintf(vgchange_sz, "vgchange");
     248        mr_asprintf(vgremove_sz, "vgremove");
    260249    }
    261250    mr_free(tmp1);
    262251
    263252    mr_asprintf(tmp1, "for i in `%s | cut -d\"'\" -f2 | sort -r` ; do echo \"Shutting down lv $i\" >> %s ; %s -f $i; done", lvscan_sz, MONDO_LOGFILE, lvremove_sz);
     253    mr_free(lvscan_sz);
     254    mr_free(lvremove_sz);
     255
    264256    run_program_and_log_output(tmp1, 5);
    265257    mr_free(tmp1);
    266258
    267259    sleep(1);
    268     sprintf(command,
    269             "for i in `%s | grep -i lvm | cut -d'\"' -f2` ; do %s -a n $i ; %s $i; echo \"Shutting down vg $i\" >> %s ; done", vgscan_sz, vgchange_sz, vgremove_sz, MONDO_LOGFILE);
     260    sprintf(command, "for i in `%s | grep -i lvm | cut -d'\"' -f2` ; do %s -a n $i ; %s $i; echo \"Shutting down vg $i\" >> %s ; done", vgscan_sz, vgchange_sz, vgremove_sz, MONDO_LOGFILE);
     261    mr_free(vgchange_sz);
     262    mr_free(vgremove_sz);
     263
    270264    run_program_and_log_output(command, 5);
    271265    if (just_erase_existing_volumes) {
     
    401395        sleep(1);
    402396    }
     397    mr_free(vgscan_sz);
     398    mr_free(pvscan_sz);
     399
    403400    paranoid_fclose(fin);
    404401    log_msg(1, "Closed i-want-my-lvm. Finished doing funky stuff.");
     
    407404    paranoid_free(incoming);
    408405    paranoid_free(command);
    409     paranoid_free(lvscan_sz);
    410     paranoid_free(lvremove_sz);
    411     paranoid_free(vgscan_sz);
    412     paranoid_free(pvscan_sz);
    413     paranoid_free(vgcreate_sz);
    414     paranoid_free(vgchange_sz);
    415     paranoid_free(vgremove_sz);
    416406    system("sync");
    417407    system("sync");
     
    829819
    830820    if (res && strstr(program, "kludge")) {
    831         mr_asprintf(&tmp, "Kludge failed; using regular mkfs.%s to format %s", format, device);
     821        mr_asprintf(tmp, "Kludge failed; using regular mkfs.%s to format %s", format, device);
    832822        mr_free(program);
    833823#ifdef __FreeBSD__
     
    895885
    896886    assert(mountlist != NULL);
    897     mr_asprintf(tmp, "format_everything (mountlist, interactively = %s", (interactively) ? "true" : "false");
    898     log_it(tmp);
    899     mr_free(tmp);
     887    log_it("format_everything (mountlist, interactively = %s", (interactively) ? "true" : "false");
    900888
    901889    mvaddstr_and_log_it(g_currentY, 0, "Formatting partitions     ");
     
    14231411    /** buffers *********************************************************/
    14241412    char *device_str = NULL;
    1425     char *format;
     1413    char *format = NULL;
    14261414    char *tmp = NULL;
    14271415
     
    14301418    assert(mountlist != NULL);
    14311419    assert_string_is_neither_NULL_nor_zerolength(drivename);
    1432 
    1433     malloc_string(format);
    14341420
    14351421    log_it("Partitioning drive %s", drivename);
     
    14451431    if (!pout_to_fdisk) {
    14461432        log_to_screen("Cannot call parted2fdisk to configure %s", drivename);
    1447         paranoid_free(format);
    14481433        return (1);
    14491434    }
     
    14801465                    mr_free(command);
    14811466                    mr_free(device_str);
    1482                     paranoid_free(format);
    14831467                    return r;
    14841468                }
     
    14951479                int i, line;
    14961480
    1497                 strcpy(format, "ufs");
     1481                mr_asprintf(format, "ufs");
    14981482                partsize = 0;
    14991483                for (i = 'a'; i < 'z'; ++i) {
     
    15521536#ifdef __FreeBSD__
    15531537        if (!fbsd_part) {
    1554 #endif
    1555 
    1556             strcpy(format, mountlist->el[lino].format);
     1538            mr_free(format);
     1539#endif
     1540
     1541            mr_asprintf(format, "%s", mountlist->el[lino].format);
    15571542            partsize = mountlist->el[lino].size;
    15581543
     
    15661551                ("You must leave at least one partition spare as the Extended partition.");
    15671552            mr_free(device_str);
    1568             paranoid_free(format);
     1553            mr_free(format);
    15691554            return (1);
    15701555        }
    15711556#endif
    15721557
    1573         retval +=
    1574             partition_device(pout_to_fdisk, drivename, current_devno,
    1575                              previous_devno, format, partsize);
     1558        retval += partition_device(pout_to_fdisk, drivename, current_devno, previous_devno, format, partsize);
     1559        mr_free(format);
    15761560
    15771561#ifdef __FreeBSD__
     
    16261610        }
    16271611    }
    1628     paranoid_free(format);
    16291612    return (retval);
    16301613}
     
    19781961        mr_asprintf(partcode, "");
    19791962    } else if (strlen(format) >= 1 && strlen(format) <= 2) {
    1980         mr_asprintf(partcode, format);
     1963        mr_asprintf(partcode, "%s", format);
    19811964    } else {
    19821965        /* probably an image */
     
    19851968        mr_free(tmp);
    19861969#ifdef __FreeBSD__
    1987         mr_asprintf(partcode, format);  // was a5
     1970        mr_asprintf(partcode, "%s", format);    // was a5
    19881971#else
    1989         mr_asprintf(partcode, format);  // was 83
     1972        mr_asprintf(partcode, "%s", format);    // was 83
    19901973#endif
    19911974    }
     
    22602243
    22612244    /** buffers *********************************************************/
    2262     char *tmp = NULL;
    22632245    char *program = NULL;
    22642246
     
    23112293        mr_asprintf(program, "mkfs -t %s -c", format);  // -c checks for bad blocks
    23122294#endif
    2313         mr_asprintf(tmp, "Unknown format (%s) - assuming '%s' will do", format, program);
    2314         log_it(tmp);
    2315         mr_free(tmp);
     2295        log_it("Unknown format (%s) - assuming '%s' will do", format, program);
    23162296        res = 0;
    23172297    }
Note: See TracChangeset for help on using the changeset viewer.