Ignore:
Timestamp:
Jul 12, 2009, 2:04:49 AM (15 years ago)
Author:
Bruno Cornec
Message:

r3208@localhost: bruno | 2009-07-07 01:09:18 +0200

  • Replace sprintf by mr_asprintf in libmondo-archive.c
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.2.10/mondo/src/common/libmondo-archive.c

    r2247 r2267  
    405405{
    406406    int retval = 0, res = 0;
    407     char *tmp;
     407    char *tmp = NULL;
    408408
    409409    assert(bkpinfo != NULL);
    410410    set_g_cdrom_and_g_dvd_to_bkpinfo_value();
    411     malloc_string(tmp);
    412411    if (bkpinfo->backup_media_type == dvd) {
    413412#ifdef DVDRWFORMAT
     
    430429    }
    431430
    432 /*
    433       sprintf(tmp, "wc -l %s/archives/filelist.full > %s/archives/filelist.count",bkpinfo->scratchdir, bkpinfo->scratchdir);
    434       if (run_program_and_log_output(tmp, 2))
    435         { fatal_error("Failed to count filelist.full"); }
    436 */
    437     sprintf(tmp, "gzip -9 %s/archives/filelist.full", bkpinfo->scratchdir);
     431    mr_asprintf(&tmp, "gzip -9 %s/archives/filelist.full", bkpinfo->scratchdir);
    438432    if (run_program_and_log_output(tmp, 2)) {
     433        mr_free(tmp);
    439434        fatal_error("Failed to gzip filelist.full");
    440435    }
    441     sprintf(tmp, "cp -f %s/archives/*list*.gz %s", bkpinfo->scratchdir,
     436    mr_free(tmp);
     437
     438    mr_asprintf(&tmp, "cp -f %s/archives/*list*.gz %s", bkpinfo->scratchdir,
    442439            bkpinfo->tmpdir);
    443440    if (run_program_and_log_output(tmp, 2)) {
     441        mr_free(tmp);
    444442        fatal_error("Failed to copy to tmpdir");
    445443    }
     444    mr_free(tmp);
    446445
    447446    copy_mondo_and_mindi_stuff_to_scratchdir(); // payload, too, if it exists
     
    463462    }
    464463    retval += do_that_initial_phase();  // prepare
    465     sprintf(tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir);
     464    mr_asprintf(&tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir);
    466465    run_program_and_log_output(tmp, 1);
     466    mr_free(tmp);
     467
    467468    retval += make_those_afios_phase(); // backup regular files
    468469    retval += make_those_slices_phase();    // backup BIG files
     
    472473        sleep(2);
    473474    }
    474     paranoid_free(tmp);
    475475    return (retval);
    476476}
     
    10151015    char *archiving_afioball_fname;
    10161016    char *curr_xattr_list_fname = NULL;
    1017     char *curr_acl_list_fname;
     1017    char *curr_acl_list_fname = NULL;
    10181018
    10191019    struct s_bkpinfo *bkpinfo_bis;
    1020     char *tmp;
     1020    char *tmp = NULL;
    10211021    int res = 0, retval = 0;
    10221022    int *p_archival_threads_running;
     
    10261026    int this_thread_no = g_current_thread_no++;
    10271027
    1028     malloc_string(curr_xattr_list_fname);
    1029     malloc_string(curr_acl_list_fname);
    10301028    malloc_string(archiving_filelist_fname);
    10311029    malloc_string(archiving_afioball_fname);
    1032     malloc_string(tmp);
    10331030    p_last_set_archived = (int *) inbuf;
    10341031    p_archival_threads_running = (int *) (inbuf + 4);
     
    10741071        }
    10751072
    1076         sprintf(tmp, AFIOBALL_FNAME_RAW_SZ, bkpinfo->tmpdir,
     1073        mr_asprintf(&tmp, AFIOBALL_FNAME_RAW_SZ, bkpinfo->tmpdir,
    10771074                archiving_set_no - ARCH_BUFFER_NUM, bkpinfo->zip_suffix);
    10781075        if (does_file_exist(tmp)) {
     
    10841081            log_msg(4, "[%d] - continuing", getpid());
    10851082        }
     1083        mr_free(tmp);
    10861084
    10871085        log_msg(4, "%s[%d:%d] - EXATing %d...", FORTY_SPACES, getpid(),
    10881086                this_thread_no, archiving_set_no);
    10891087        if (g_getfattr) {
    1090             sprintf(curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
     1088            mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
    10911089                bkpinfo->tmpdir, archiving_set_no);
    10921090            get_fattr_list(archiving_filelist_fname, curr_xattr_list_fname);
     1091            mr_free(curr_xattr_list_fname);
    10931092        }
    10941093        if (g_getfacl) {
    1095             sprintf(curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
     1094            mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
    10961095                bkpinfo->tmpdir, archiving_set_no);
    10971096            get_acl_list(archiving_filelist_fname, curr_acl_list_fname);
     1097            mr_free(curr_acl_list_fname);
    10981098        }
    10991099
     
    11071107
    11081108        if (res) {
    1109             sprintf(tmp,
     1109            mr_asprintf(&tmp,
    11101110                    "Errors occurred while archiving set %ld. Please review logs.",
    11111111                    archiving_set_no);
    11121112            log_to_screen(tmp);
     1113            mr_free(tmp);
    11131114        }
    11141115        if (!semaphore_p()) {
     
    11401141    paranoid_free(archiving_filelist_fname);
    11411142    paranoid_free(archiving_afioball_fname);
    1142     paranoid_free(curr_xattr_list_fname);
    1143     paranoid_free(curr_acl_list_fname);
    1144     paranoid_free(tmp);
    11451143    pthread_exit(NULL);
    11461144}
     
    12241222
    12251223    /*@ buffers *********************************** */
    1226     char *command, *tmpfile, *data_disks_file;
     1224    char *command = NULL;
     1225    char *tmpfile = NULL;
     1226    char *data_disks_file = NULL;
    12271227
    12281228    assert(bkpinfo != NULL);
    1229     malloc_string(command);
    1230     malloc_string(tmpfile);
    1231     malloc_string(data_disks_file);
    1232     sprintf(data_disks_file, "%s/all.tar.gz", bkpinfo->tmpdir);
     1229    mr_asprintf(&data_disks_file, "%s/all.tar.gz", bkpinfo->tmpdir);
    12331230
    12341231    snprintf(g_serial_string, MAX_STR_LEN - 8, "%s",
     
    12411238    assert(strlen(g_serial_string) < MAX_STR_LEN);
    12421239
    1243     sprintf(tmpfile, "%s/archives/SERIAL-STRING", bkpinfo->scratchdir);
     1240    mr_asprintf(&tmpfile, "%s/archives/SERIAL-STRING", bkpinfo->scratchdir);
    12441241    if (write_one_liner_data_file(tmpfile, g_serial_string)) {
    12451242        log_msg(1, "%ld: Failed to write serial string", __LINE__);
    12461243    }
     1244    mr_free(tmpfile);
    12471245
    12481246    mvaddstr_and_log_it(g_currentY, 0, "Preparing to archive your data");
     
    12651263        }
    12661264    }
    1267 
    1268     sprintf(command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir,
    1269             bkpinfo->nfs_remote_dir, bkpinfo->prefix);
     1265    mr_free(data_disks_file);
     1266
     1267    mr_asprintf(&command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix);
    12701268    paranoid_system(command);
     1269    mr_free(command);
     1270
    12711271    wipe_archives(bkpinfo->scratchdir);
    12721272    mvaddstr_and_log_it(g_currentY++, 74, "Done.");
     
    12771277                                     BLK_START_OF_BACKUP);
    12781278    }
    1279     paranoid_free(command);
    1280     paranoid_free(tmpfile);
    1281     paranoid_free(data_disks_file);
    12821279    return (retval);
    12831280}
     
    13521349
    13531350    /*@ buffers ********************************************** */
    1354     char *storing_filelist_fname;
    1355     char *storing_afioball_fname;
     1351    char *storing_filelist_fname = NULL;
     1352    char *storing_afioball_fname = NULL;
    13561353    char *tmp = NULL;
    13571354    char *media_usage_comment = NULL;
     
    13701367    assert(bkpinfo != NULL);
    13711368    malloc_string(result_str);
    1372     malloc_string(curr_xattr_list_fname);
    1373     malloc_string(curr_acl_list_fname);
    1374     malloc_string(storing_filelist_fname);
    1375     malloc_string(storing_afioball_fname);
    13761369    transfer_block =
    13771370        malloc(sizeof(struct s_bkpinfo) + BKPINFO_LOC_OFFSET + 64);
     
    14421435            */
    14431436            sleep(1);
    1444             } else
     1437            } else {
    14451438                // store set N
    1446             {
    1447                 sprintf(storing_filelist_fname, FILELIST_FNAME_RAW_SZ,
     1439                mr_asprintf(&storing_filelist_fname, FILELIST_FNAME_RAW_SZ,
    14481440                        bkpinfo->tmpdir, storing_set_no);
    1449                 sprintf(storing_afioball_fname, AFIOBALL_FNAME_RAW_SZ,
     1441                mr_asprintf(&storing_afioball_fname, AFIOBALL_FNAME_RAW_SZ,
    14501442                        bkpinfo->tmpdir, storing_set_no, bkpinfo->zip_suffix);
    14511443                if (g_getfattr) {
    1452                     sprintf(curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
     1444                    mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,
    14531445                        bkpinfo->tmpdir, storing_set_no);
    14541446                }
    14551447                if (g_getfacl) {
    1456                     sprintf(curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
     1448                    mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,
    14571449                        bkpinfo->tmpdir, storing_set_no);
    14581450                }
     
    15191511                storing_set_no++;
    15201512                //      sleep(2);
     1513                if (g_getfacl) {
     1514                    mr_free(curr_acl_list_fname);
     1515                }
     1516                if (g_getfattr) {
     1517                    mr_free(curr_xattr_list_fname);
     1518                }
     1519                mr_free(storing_filelist_fname);
     1520                mr_free(storing_afioball_fname);
    15211521        }
    15221522    }
     
    15411541    paranoid_free(transfer_block);
    15421542    paranoid_free(result_str);
    1543     paranoid_free(storing_filelist_fname);
    1544     paranoid_free(storing_afioball_fname);
    1545     paranoid_free(curr_xattr_list_fname);
    1546     paranoid_free(curr_acl_list_fname);
    15471543    return (retval);
    15481544}
     
    16821678
    16831679    /*@ buffers ****************************************** */
    1684     char *tmp;
     1680    char *tmp = NULL;
    16851681    char *old_pwd;
    16861682    char *result_sz = NULL;
     
    16881684    char *sz_blank_disk = NULL;
    16891685    char *fnam;
    1690     char *tmp2;
    1691     char *tmp3;
     1686    char *tmp2 = NULL;
     1687    char *tmp3 = NULL;
    16921688    char *mds = NULL;
    16931689    bool cd_is_mountable;
     
    16951691    malloc_string(old_pwd);
    16961692    malloc_string(fnam);
    1697     tmp = malloc(1200);
    1698     tmp2 = malloc(1200);
    1699     tmp3 = malloc(1200);
    17001693    assert(bkpinfo != NULL);
    17011694    assert_string_is_neither_NULL_nor_zerolength(destfile);
    17021695
    1703     sprintf(tmp, "%s/isolinux.bin", bkpinfo->scratchdir);
    1704     sprintf(tmp2, "%s/isolinux.bin", bkpinfo->tmpdir);
     1696    mr_asprintf(&tmp, "%s/isolinux.bin", bkpinfo->scratchdir);
     1697    mr_asprintf(&tmp2, "%s/isolinux.bin", bkpinfo->tmpdir);
    17051698    if (does_file_exist(tmp)) {
    1706         sprintf(tmp3, "cp -f %s %s", tmp, tmp2);
     1699        mr_asprintf(&tmp3, "cp -f %s %s", tmp, tmp2);
    17071700        paranoid_system(tmp3);
     1701        mr_free(tmp3);
    17081702    }
    17091703    if (!does_file_exist(tmp) && does_file_exist(tmp2)) {
    1710         sprintf(tmp3, "cp -f %s %s", tmp2, tmp);
     1704        mr_asprintf(&tmp3, "cp -f %s %s", tmp2, tmp);
    17111705        paranoid_system(tmp3);
    1712     }
    1713     free(tmp2);
    1714     free(tmp3);
    1715     tmp2 = NULL;
    1716     tmp3 = NULL;
     1706        mr_free(tmp3);
     1707    }
     1708    mr_free(tmp2);
     1709    mr_free(tmp);
     1710
    17171711    if (bkpinfo->backup_media_type == iso && bkpinfo->manual_cd_tray) {
    17181712        popup_and_OK("Please insert new media and press Enter.");
     
    17221716            bkpinfo->scratchdir, destfile);
    17231717    (void) getcwd(old_pwd, MAX_STR_LEN - 1);
    1724     sprintf(tmp, "chmod 744 %s", bkpinfo->scratchdir);
     1718    mr_asprintf(&tmp, "chmod 744 %s", bkpinfo->scratchdir);
    17251719    run_program_and_log_output(tmp, FALSE);
     1720    mr_free(tmp);
     1721
    17261722    chdir(bkpinfo->scratchdir);
    17271723
     
    17461742    if (bkpinfo->call_make_iso[0] != '\0') {
    17471743        log_msg(2, "bkpinfo->call_make_iso = %s", bkpinfo->call_make_iso);
    1748         sprintf(tmp, "%s/archives/NOT-THE-LAST", bkpinfo->scratchdir);
    17491744        mds = media_descriptor_string(bkpinfo->backup_media_type);
    17501745        mr_asprintf(&message_to_screen, "Making an ISO (%s #%d)", mds, g_current_media_number);
     
    17651760            } else {
    17661761                log_to_screen("%s...OK", message_to_screen);
    1767                 sprintf(tmp, "tail -n10 %s | grep -F ':-('", MONDO_LOGFILE);
     1762                mr_asprintf(&tmp, "tail -n10 %s | grep -F ':-('", MONDO_LOGFILE);
    17681763                if (!run_program_and_log_output(tmp, 1)) {
    17691764                    log_to_screen
    17701765                        ("Despite nonfatal errors, growisofs confirms the write was successful.");
    17711766                }
     1767                mr_free(tmp);
    17721768            }
    17731769            retval += res;
    17741770#ifdef DVDRWFORMAT
    1775             sprintf(tmp,
     1771            mr_asprintf(&tmp,
    17761772                    "tail -n8 %s | grep 'blank=full.*dvd-compat.*DAO'",
    17771773                    MONDO_LOGFILE);
     
    18381834                }
    18391835            }
     1836            mr_free(tmp);
    18401837#endif
    18411838            if (g_backup_media_type == dvd && !bkpinfo->please_dont_eject) {
     
    19181915                    "Warning - %s mounted. I'm unmounting it before I burn to it.",
    19191916                    bkpinfo->media_device);
    1920             sprintf(tmp, "umount %s", bkpinfo->media_device);
     1917            mr_asprintf(&tmp, "umount %s", bkpinfo->media_device);
    19211918            run_program_and_log_output(tmp, FALSE);
     1919            mr_free(tmp);
    19221920        }
    19231921    }
     
    19691967    paranoid_free(old_pwd);
    19701968    paranoid_free(fnam);
    1971     paranoid_free(tmp);
    19721969    return (retval);
    19731970}
     
    33253322    /*@ buffers ***************************************************** */
    33263323    char *tmp;
    3327     char *cdno_fname;
    3328     char *lastcd_fname;
    3329     char *isofile;
     3324    char *tmp1;
     3325    char *cdno_fname = NULL;
     3326    char *lastcd_fname = NULL;
     3327    char *isofile = NULL;
    33303328    char *mds = NULL;
    33313329
     
    33383336
    33393337    malloc_string(tmp);
    3340     malloc_string(cdno_fname);
    3341     malloc_string(lastcd_fname);
    3342     malloc_string(isofile);
    33433338
    33443339    assert(bkpinfo != NULL);
     
    33543349    /* label the ISO with its number */
    33553350
    3356     sprintf(cdno_fname, "%s/archives/THIS-CD-NUMBER", bkpinfo->scratchdir);
     3351    mr_asprintf(&cdno_fname, "%s/archives/THIS-CD-NUMBER", bkpinfo->scratchdir);
    33573352    fout = fopen(cdno_fname, "w");
     3353    mr_free(cdno_fname);
     3354
    33583355    fprintf(fout, "%d", g_current_media_number);
    33593356    paranoid_fclose(fout);
    33603357
    3361     sprintf(tmp, "cp -f %s/autorun %s/", g_mondo_home,
     3358    mr_asprintf(&tmp1, "cp -f %s/autorun %s/", g_mondo_home,
    33623359            bkpinfo->scratchdir);
    3363     if (run_program_and_log_output(tmp, FALSE)) {
     3360    if (run_program_and_log_output(tmp1, FALSE)) {
    33643361        log_msg(2, "Warning - unable to copy autorun to scratchdir");
    33653362    }
     3363    mr_free(tmp1);
    33663364
    33673365    /* last CD or not? Label accordingly */
    3368     sprintf(lastcd_fname, "%s/archives/NOT-THE-LAST", bkpinfo->scratchdir);
     3366    mr_asprintf(&lastcd_fname, "%s/archives/NOT-THE-LAST", bkpinfo->scratchdir);
    33693367    if (last_cd) {
    33703368        unlink(lastcd_fname);
     
    33773375        paranoid_fclose(fout);
    33783376    }
     3377    mr_free(lastcd_fname);
     3378
    33793379    if (space_occupied_by_cd(bkpinfo->scratchdir) / 1024 >
    33803380        bkpinfo->media_size[g_current_media_number]) {
    3381         sprintf(tmp,
     3381        mr_asprintf(&tmp1,
    33823382                "Warning! CD is too big. It occupies %ld KB, which is more than the %ld KB allowed.",
    33833383                (long) space_occupied_by_cd(bkpinfo->scratchdir),
    33843384                (long) bkpinfo->media_size[g_current_media_number]);
    3385         log_to_screen(tmp);
    3386     }
    3387     sprintf(isofile, "%s/%s/%s-%d.iso", bkpinfo->isodir,
     3385        log_to_screen(tmp1);
     3386        mr_free(tmp1);
     3387    }
     3388    mr_asprintf(&isofile, "%s/%s/%s-%d.iso", bkpinfo->isodir,
    33883389            bkpinfo->nfs_remote_dir, bkpinfo->prefix,
    33893390            g_current_media_number);
     
    34243425        } else {
    34253426            mds = media_descriptor_string(bkpinfo->backup_media_type);
    3426             sprintf(tmp, "Failed to create %s #%d. Retry?", mds, g_current_media_number);
     3427            mr_asprintf(&tmp1, "Failed to create %s #%d. Retry?", mds, g_current_media_number);
    34273428            mr_free(mds);
    34283429            res = ask_me_yes_or_no(tmp);
     3430            mr_free(tmp1);
     3431
    34293432            if (!res) {
    34303433                if (ask_me_yes_or_no("Abort the backup?")) {
     
    34393442        }
    34403443    }
     3444    mr_free(isofile);
     3445
    34413446    g_current_media_number++;
    34423447    if (g_current_media_number > MAX_NOOF_MEDIA) {
     
    34443449    }
    34453450    wipe_archives(bkpinfo->scratchdir);
    3446     sprintf(tmp, "rm -Rf %s/images/*gz %s/images/*data*img",
     3451    mr_asprintf(&tmp1, "rm -Rf %s/images/*gz %s/images/*data*img",
    34473452            bkpinfo->scratchdir, bkpinfo->scratchdir);
    3448     if (system(tmp)) {
     3453    if (system(tmp1)) {
    34493454        log_msg
    34503455            (2,
    34513456             "Error occurred when I tried to delete the redundant IMGs and GZs");
    34523457    }
     3458    mr_free(tmp1);
    34533459
    34543460    if (last_cd) {
     
    34593465
    34603466    bkpinfo->verify_data = orig_vfy_flag_val;
    3461     paranoid_free(tmp);
    3462     paranoid_free(cdno_fname);
    3463     paranoid_free(lastcd_fname);
    3464     paranoid_free(isofile);
    34653467    return (0);
    34663468}
Note: See TracChangeset for help on using the changeset viewer.