Ignore:
Timestamp:
Sep 25, 2013, 9:03:25 AM (11 years ago)
Author:
Bruno Cornec
Message:
  • revert r3188 & r3189 as I started to work on branch 3.0 before deciding it was much better to do it in 3.2. This will allow some small maintenance work on 3.0 if needed, while pushing all the rest to 3.2 and providing early access to it.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.0/mondo/src/common/libmondo-verify.c

    r3188 r3192  
    5555    assert(bkpinfo != NULL);
    5656    assert_string_is_neither_NULL_nor_zerolength(mountpoint);
    57     sprintf(output, "%s/archives/%d.star.%s", mountpoint, setno, bkpinfo->zip_suffix);
     57    sprintf(output, "%s/archives/%d.star.%s", mountpoint, setno,
     58            bkpinfo->zip_suffix);
    5859    if (!does_file_exist(output)) {
    59         sprintf(output, "%s/archives/%d.afio.%s", mountpoint, setno, bkpinfo->zip_suffix);
     60        sprintf(output, "%s/archives/%d.afio.%s", mountpoint, setno,
     61                bkpinfo->zip_suffix);
    6062    }
    6163    return (output);
     
    7880{
    7981    /*@ buffer ********************************************************** */
    80     char *command = NULL;
    81     char *afio_found_changes = NULL;
     82    char *command;
     83    char *afio_found_changes;
    8284
    8385    /*@ int ************************************************************* */
     
    8789    long afio_diffs = 0;
    8890
     91    command = malloc(2000);
     92    afio_found_changes = malloc(500);
    8993    assert_string_is_neither_NULL_nor_zerolength(changedfiles_fname);
    9094    assert_string_is_neither_NULL_nor_zerolength(ignorefiles_fname);
    9195    assert_string_is_neither_NULL_nor_zerolength(stderr_fname);
    9296
    93     mr_asprintf(afio_found_changes, "%s.afio", ignorefiles_fname);
    94     sync();
     97    sprintf(afio_found_changes, "%s.afio", ignorefiles_fname);
     98    paranoid_system("sync");
     99
     100/*  sprintf (command,
     101       "grep \"afio: \" %s | awk '{j=substr($0,8); i=index(j,\": \");printf \"/%%s\\n\",substr(j,1,i-2);}' | sort -u | grep -v \"incheckentry.*xwait\" | grep -vx \"/afio:.*\" | grep -vx \"/dev/.*\" > %s",
     102       stderr_fname, afio_found_changes);
     103*/
    95104
    96105    log_msg(1, "Now scanning log file for 'afio: ' stuff");
    97     mr_asprintf(command, "grep \"afio: \" %s | sed 's/afio: //' | grep -vE '^/dev/.*$' >> %s", stderr_fname, afio_found_changes);
     106    sprintf(command,
     107            "grep \"afio: \" %s | sed 's/afio: //' | grep -vE '^/dev/.*$' >> %s",
     108            stderr_fname, afio_found_changes);
    98109    log_msg(2, command);
    99110    res = system(command);
    100     mr_free(command);
    101 
    102111    if (res) {
    103112        log_msg(2, "Warning - failed to think");
     
    105114
    106115    log_msg(1, "Now scanning log file for 'star: ' stuff");
    107     mr_asprintf(command, "grep \"star: \" %s | sed 's/star: //' | grep -vE '^/dev/.*$' >> %s", stderr_fname, afio_found_changes);
     116    sprintf(command,
     117            "grep \"star: \" %s | sed 's/star: //' | grep -vE '^/dev/.*$' >> %s",
     118            stderr_fname, afio_found_changes);
    108119    log_msg(2, command);
    109120    res = system(command);
    110     mr_free(command);
    111 
    112121    if (res) {
    113122        log_msg(2, "Warning - failed to think");
    114123    }
     124//  exclude_nonexistent_files (afio_found_changes);
    115125    afio_diffs = count_lines_in_file(afio_found_changes);
    116     mr_asprintf(command, "sort %s %s %s | uniq -c | awk '{ if ($1==\"2\") {print $2;};}' | grep -v \"incheckentry xwait()\" > %s", ignorefiles_fname, afio_found_changes, afio_found_changes, changedfiles_fname);
    117     mr_free(afio_found_changes);
     126    sprintf(command,
     127            "sort %s %s %s | uniq -c | awk '{ if ($1==\"2\") {print $2;};}' | grep -v \"incheckentry xwait()\" > %s",
     128            ignorefiles_fname, afio_found_changes, afio_found_changes,
     129            changedfiles_fname);
    118130    log_msg(2, command);
    119131    paranoid_system(command);
    120     mr_free(command);
     132    paranoid_free(command);
     133    paranoid_free(afio_found_changes);
    121134    return (afio_diffs);
    122135}
     
    138151
    139152    /*@ buffers ********************************************************* */
    140     char *tmp = NULL;
     153    char *tmp;
    141154    char *mds = NULL;
    142155
     
    149162    assert_string_is_neither_NULL_nor_zerolength(mountpoint);
    150163    assert(bkpinfo != NULL);
     164    malloc_string(tmp);
    151165
    152166    for (set_number = 0;
     
    161175    if (g_last_afioball_number != set_number - 1) {
    162176        if (set_number == 0) {
    163             log_msg(1, "Weird error in verify_afioballs_on_CD() but it's really a cosmetic error, nothing more");
     177            log_msg(1,
     178                    "Weird error in verify_afioballs_on_CD() but it's really a cosmetic error, nothing more");
    164179        } else {
    165180            retval++;
    166             log_to_screen("Warning - missing set(s) between %d and %d\n", g_last_afioball_number, set_number - 1);
     181            sprintf(tmp, "Warning - missing set(s) between %d and %d\n",
     182                    g_last_afioball_number, set_number - 1);
     183            log_to_screen(tmp);
    167184        }
    168185    }
    169186    mds = media_descriptor_string(bkpinfo->backup_media_type);
    170     mr_asprintf(tmp, "Verifying %s #%d's tarballs", mds, g_current_media_number);
     187    sprintf(tmp, "Verifying %s #%d's tarballs", mds, g_current_media_number);
    171188    mr_free(mds);
    172189
    173190    open_evalcall_form(tmp);
    174     mr_free(tmp);
    175191
    176192    for (total_sets = set_number;
     
    192208    g_last_afioball_number = set_number - 1;
    193209    close_evalcall_form();
     210    paranoid_free(tmp);
    194211    return (retval);
    195212}
     
    210227
    211228    /*@ buffer ********************************************************** */
    212     char *tmp = NULL;
    213     char *mountpoint = NULL;
    214     char *command = NULL;
     229    char *tmp;
     230    char *mountpoint;
     231//  char ca, cb;
     232    char *command;
    215233    char *mds = NULL;
    216     char *sz_exe = NULL;
     234    char *sz_exe;
    217235    static char *bufblkA = NULL;
    218236    static char *bufblkB = NULL;
     
    234252    FILE *fin;
    235253    int retval = 0;
    236 
     254//  long long outlen;
     255
     256    malloc_string(tmp);
     257    malloc_string(mountpoint);
     258    malloc_string(command);
     259    malloc_string(sz_exe);
    237260    if (!bufblkA) {
    238261        if (!(bufblkA = malloc(maxbufsize))) {
     
    251274    if (bkpinfo->compression_level > 0) {
    252275        if (bkpinfo->use_lzo) {
    253             mr_asprintf(sz_exe, "lzop");
     276            strcpy(sz_exe, "lzop");
    254277        } else if (bkpinfo->use_gzip) {
    255             mr_asprintf(sz_exe, "gzip");
    256         } else if (bkpinfo->use_lzma) {
    257             mr_asprintf(sz_exe, "lzma");
     278            strcpy(sz_exe, "gzip");
    258279        } else {
    259             mr_asprintf(sz_exe, "bzip2");
    260         }
     280            strcpy(sz_exe, "bzip2");
     281        }
     282    } else {
     283        sz_exe[0] = '\0';
    261284    }
    262285
    263286    log_it("before vsbf");
    264287    mds = media_descriptor_string(bkpinfo->backup_media_type);
    265     mr_asprintf(tmp, "Verifying %s#%d's big files", mds, g_current_media_number);
     288    sprintf(tmp, "Verifying %s#%d's big files", mds, g_current_media_number);
    266289    mr_free(mds);
    267290
    268291    open_evalcall_form(tmp);
    269     mr_free(tmp);
    270 
    271292    log_it("after vsbf");
    272     mr_asprintf(mountpoint, "%s/archives", mtpt);
     293    sprintf(mountpoint, "%s/archives", mtpt);
    273294    if (last_bigfile_num == -1) {
    274295        bigfile_num = 0;
     
    281302        slice_num = last_slice_num + 1;
    282303    }
    283     while (does_file_exist(slice_fname(bigfile_num, slice_num, mountpoint, bkpinfo->zip_suffix))
     304    while (does_file_exist
     305           (slice_fname
     306            (bigfile_num, slice_num, mountpoint, bkpinfo->zip_suffix))
    284307           ||
    285            does_file_exist(slice_fname(bigfile_num, slice_num, mountpoint, ""))) {
     308           does_file_exist(slice_fname
     309                           (bigfile_num, slice_num, mountpoint, ""))) {
    286310        // handle slices until end of CD
    287311        if (slice_num == 0) {
    288             log_msg(2, "ISO=%d  bigfile=%ld --START--", g_current_media_number, bigfile_num);
    289             if (! (fin = fopen(slice_fname(bigfile_num, slice_num, mountpoint, ""), "r"))) {
     312            log_msg(2, "ISO=%d  bigfile=%ld --START--",
     313                    g_current_media_number, bigfile_num);
     314            if (!
     315                (fin =
     316                 fopen(slice_fname(bigfile_num, slice_num, mountpoint, ""),
     317                       "r"))) {
    290318                log_msg(2, "Cannot open bigfile's info file");
    291319            } else {
    292                 if (fread ((void *) &biggiestruct, 1, sizeof(biggiestruct), fin) < sizeof(biggiestruct)) {
     320                if (fread
     321                    ((void *) &biggiestruct, 1, sizeof(biggiestruct),
     322                     fin) < sizeof(biggiestruct)) {
    293323                    log_msg(2, "Unable to get biggiestruct");
    294324                }
    295325                paranoid_fclose(fin);
    296326            }
    297             if (bkpinfo->restore_path) {
    298                 mr_asprintf(tmp, "%s/%s", bkpinfo->restore_path, biggiestruct.filename);
    299                 log_msg(2, "Opening biggiefile #%ld - '%s'", bigfile_num, tmp);
    300                 forig = fopen(tmp, "r");
    301                 mr_free(tmp);
    302    
    303                 if (!forig) {
    304                     log_msg(2, "Failed to open bigfile. Darn.");
    305                     log_to_screen("%s/%s not found on live filesystem", bkpinfo->restore_path, biggiestruct.filename);
    306                     mr_asprintf(tmp, "echo \"%s/%s not found\" >> %s/biggies.changed", bkpinfo->restore_path, biggiestruct.filename, bkpinfo->tmpdir);
    307                     paranoid_system(tmp);
    308                     mr_free(tmp);
    309 
    310                     bigfile_num++;
    311                     slice_num = 0;
    312                     retval++;
    313                 } else {
    314                     slice_num++;
    315                 }
     327            sprintf(tmp, "%s/%s", bkpinfo->restore_path,
     328                    biggiestruct.filename);
     329            log_msg(2, "Opening biggiefile #%ld - '%s'", bigfile_num, tmp);
     330            if (!(forig = fopen(tmp, "r"))) {
     331                log_msg(2, "Failed to open bigfile. Darn.");
     332                log_to_screen("%s/%s not found on live filesystem",
     333                            bkpinfo->restore_path,
     334                            biggiestruct.filename);
     335                mr_asprintf(mds, "echo \"%s/%s not found\" >> %s/biggies.changed",
     336                            bkpinfo->restore_path,
     337                            biggiestruct.filename,
     338                            bkpinfo->tmpdir);
     339                paranoid_system(mds);
     340                paranoid_free(mds);
     341
     342                bigfile_num++;
     343                slice_num = 0;
     344                retval++;
    316345            } else {
    317                 log_it("Unable to open bigfile as restore_path is NULL");
     346                slice_num++;
    318347            }
    319348        } else if (does_file_exist(slice_fname(bigfile_num, slice_num, mountpoint, "")) &&
     
    325354            slice_num = 0;
    326355        } else {
    327             log_msg(2, "ISO=%d  bigfile=%ld  slice=%ld", g_current_media_number, bigfile_num, slice_num);
    328             if ((!does_file_exist(slice_fname(bigfile_num, slice_num, mountpoint, ""))) && (sz_exe != NULL)) {
    329                 mr_asprintf(command, "%s -dc %s 2>> %s", sz_exe, slice_fname(bigfile_num, slice_num, mountpoint, bkpinfo->zip_suffix), MONDO_LOGFILE);
     356            log_msg(2, "ISO=%d  bigfile=%ld  slice=%ld",
     357                    g_current_media_number, bigfile_num, slice_num);
     358            if (!does_file_exist(slice_fname(bigfile_num, slice_num, mountpoint, ""))) {
     359                sprintf(command, "%s -dc %s 2>> %s",
     360                        sz_exe,
     361                        slice_fname(bigfile_num, slice_num, mountpoint, bkpinfo->zip_suffix),
     362                        MONDO_LOGFILE);
    330363            } else {
    331                 mr_asprintf(command, "cat %s 2>> %s", slice_fname(bigfile_num, slice_num, mountpoint, ""), MONDO_LOGFILE);
     364                sprintf(command, "cat %s 2>> %s",
     365                        slice_fname(bigfile_num, slice_num, mountpoint, ""), MONDO_LOGFILE);
    332366            }
    333             pin = popen(command, "r");
    334             mr_free(command);
    335             if (pin) {
     367            if ((pin = popen(command, "r"))) {
    336368                res = 0;
    337369                while (!feof(pin)) {
     
    372404        }
    373405    }
    374     mr_free(mountpoint);
    375     mr_free(sz_exe);
    376 
    377406    last_bigfile_num = bigfile_num;
    378407    last_slice_num = slice_num - 1;
     
    387416        paranoid_free(bufblkB);
    388417    }
     418    paranoid_free(tmp);
     419    paranoid_free(command);
     420    paranoid_free(sz_exe);
     421    paranoid_free(mountpoint);
    389422    return (0);
    390423}
     
    409442{
    410443    /*@ buffers ********************************************************* */
    411     char *command = NULL;
    412     char *outlog = NULL;
    413     char *tmp = NULL;
    414     char *p = NULL;
     444    char *command;
     445    char *outlog;
     446    char *tmp;
     447    char *p;
    415448
    416449    /*@ pointers ******************************************************* */
     
    429462
    430463    log_it("Verifying fileset '%s'", tarball_fname);
    431     mr_asprintf(outlog, "%s/afio.log", bkpinfo->tmpdir);
    432     /* if programmer forgot to say which compression thingy to use then find out */
    433     if (strstr(tarball_fname, ".lzo") && strcmp(bkpinfo->zip_suffix, "lzo")) {
     464    /*  chdir("/"); */
     465    sprintf(outlog, "%s/afio.log", bkpinfo->tmpdir);
     466/* if programmer forgot to say which compression thingy to use then find out */
     467    if (strstr(tarball_fname, ".lzo")
     468        && strcmp(bkpinfo->zip_suffix, "lzo")) {
    434469        log_msg(2, "OK, I'm going to start using lzop.");
    435470        strcpy(bkpinfo->zip_exe, "lzop");
     
    437472        bkpinfo->use_lzo = TRUE;
    438473        bkpinfo->use_gzip = FALSE;
    439         bkpinfo->use_lzma = FALSE;
    440     }
    441     if (strstr(tarball_fname, ".gz") && strcmp(bkpinfo->zip_suffix, "gz")) {
     474    }
     475    if (strstr(tarball_fname, ".gz")
     476        && strcmp(bkpinfo->zip_suffix, "gz")) {
    442477        log_msg(2, "OK, I'm going to start using gzip.");
    443478        strcpy(bkpinfo->zip_exe, "gzip");
     
    445480        bkpinfo->use_lzo = FALSE;
    446481        bkpinfo->use_gzip = TRUE;
    447         bkpinfo->use_lzma = FALSE;
    448     }
    449     if (strstr(tarball_fname, ".bz2") && strcmp(bkpinfo->zip_suffix, "bz2")) {
     482    }
     483    if (strstr(tarball_fname, ".bz2")
     484        && strcmp(bkpinfo->zip_suffix, "bz2")) {
    450485        log_msg(2, "OK, I'm going to start using bzip2.");
    451486        strcpy(bkpinfo->zip_exe, "bzip2");
     
    453488        bkpinfo->use_lzo = FALSE;
    454489        bkpinfo->use_gzip = FALSE;
    455         bkpinfo->use_lzma = FALSE;
    456     }
    457     if (strstr(tarball_fname, ".lzma") && strcmp(bkpinfo->zip_suffix, "lzma")) {
    458         log_msg(2, "OK, I'm going to start using lzma.");
    459         strcpy(bkpinfo->zip_exe, "lzma");
    460         strcpy(bkpinfo->zip_suffix, "lzma");
    461         bkpinfo->use_lzo = FALSE;
    462         bkpinfo->use_gzip = FALSE;
    463         bkpinfo->use_lzma = TRUE;
    464     }
    465     if (bkpinfo->zip_exe == NULL) {
    466         strcpy(bkpinfo->zip_exe, "none");
    467     }
    468     if (bkpinfo->zip_suffix == NULL) {
    469         strcpy(bkpinfo->zip_suffix, "");
    470490    }
    471491    unlink(outlog);
     
    473493        bkpinfo->use_star = TRUE;
    474494        if (strstr(tarball_fname, ".bz2"))
    475             mr_asprintf(command, "star -sparse -diff diffopts=mode,size,data file=%s %s >> %s 2>> %s", tarball_fname, (strstr(tarball_fname, ".bz2")) ? "-bz" : " ", outlog, outlog);
     495            sprintf(command,
     496                    "star -sparse -diff diffopts=mode,size,data file=%s %s >> %s 2>> %s",
     497                    tarball_fname,
     498                    (strstr(tarball_fname, ".bz2")) ? "-bz" : " ", outlog,
     499                    outlog);
    476500    } else {
    477501        bkpinfo->use_star = FALSE;
    478         /* Here we suppose that there is always a compression program called */
    479         if (bkpinfo->zip_exe) {
    480             mr_asprintf(command, "afio -r -P %s -Z %s >> %s 2>> %s", bkpinfo->zip_exe, tarball_fname, outlog, outlog);
    481         } else {
    482             mr_asprintf(command, "afio -r -Z %s >> %s 2>> %s", tarball_fname, outlog, outlog);
    483         }
     502        sprintf(command, "afio -r -P %s -Z %s >> %s 2>> %s",
     503                bkpinfo->zip_exe, tarball_fname, outlog, outlog);
    484504    }
    485505    log_msg(6, "command=%s", command);
    486506    paranoid_system(command);
    487     mr_free(command);
    488 
    489507    if (length_of_file(outlog) < 10) {
    490         mr_asprintf(command, "cat %s >> %s", outlog, MONDO_LOGFILE);
     508        sprintf(command, "cat %s >> %s", outlog, MONDO_LOGFILE);
    491509    } else {
    492         mr_asprintf(command, "cut -d: -f%d %s | sort -u", (bkpinfo->use_star) ? 1 : 2, outlog);
     510        sprintf(command, "cut -d: -f%d %s | sort -u",
     511                (bkpinfo->use_star) ? 1 : 2, outlog);
    493512        pin = popen(command, "r");
    494513        if (pin) {
    495             for (mr_getline(tmp, pin); !feof(pin); mr_getline(tmp, pin)) {
     514            for (p = fgets(tmp, MAX_STR_LEN, pin); !feof(pin) && (p != NULL);
     515                 p = fgets(tmp, MAX_STR_LEN, pin)) {
    496516                if (bkpinfo->use_star) {
    497517                    if (!strstr(tmp, "diffopts=")) {
    498                         while (strlen(tmp) > 0 && tmp[strlen(tmp) - 1] < 32) {
     518                        while (strlen(tmp) > 0
     519                               && tmp[strlen(tmp) - 1] < 32) {
    499520                            tmp[strlen(tmp) - 1] = '\0';
    500521                        }
    501522                        if (strchr(tmp, '/')) {
    502523                            if (!diffs) {
    503                                 log_msg(0, "'%s' - differences found", tarball_fname);
     524                                log_msg(0, "'%s' - differences found",
     525                                        tarball_fname);
    504526                            }
    505                             log_msg(0, "star: /%s", strip_afio_output_line(tmp));
     527                            log_msg(0, "star: /%s",
     528                                    strip_afio_output_line(tmp));
    506529                            diffs++;
    507530                        }
     
    509532                } else {
    510533                    if (!diffs) {
    511                         log_msg(0, "'%s' - differences found", tarball_fname);
     534                        log_msg(0, "'%s' - differences found",
     535                                tarball_fname);
    512536                    }
    513537                    log_msg(0, "afio: /%s", strip_afio_output_line(tmp));
    514538                    diffs++;
    515539                }
    516                 mr_free(tmp);
    517540            }
    518             mr_free(tmp);
    519541            paranoid_pclose(pin);
    520542        } else {
     
    522544        }
    523545    }
    524     mr_free(command);
    525     mr_free(outlog);
     546    /*  chdir(old_pwd); */
     547    //  sprintf (tmp, "uniq -u %s >> %s", "/tmp/mondo-verify.err", MONDO_LOGFILE);
     548    //  paranoid_system (tmp);
     549    //  unlink ("/tmp/mondo-verify.err");
     550    paranoid_free(command);
     551    paranoid_free(outlog);
     552    paranoid_free(tmp);
    526553    return (0);
    527554}
     
    577604
    578605    /*@ buffers ********************************************************** */
    579     char *tmp = NULL;
    580     char *tarball_fname = NULL;
     606    char *tmp;
     607    char *tarball_fname;
    581608
    582609    /*@ pointers ********************************************************* */
    583610    char *p;
    584611
     612    malloc_string(tmp);
     613    malloc_string(tarball_fname);
    585614    assert(bkpinfo != NULL);
    586615    assert_string_is_neither_NULL_nor_zerolength(orig_fname);
     
    592621        p++;
    593622    }
    594     mr_asprintf(tmp, "mkdir -p %s/tmpfs", bkpinfo->tmpdir);
     623    sprintf(tmp, "mkdir -p %s/tmpfs", bkpinfo->tmpdir);
    595624    paranoid_system(tmp);
    596     mr_free(tmp);
    597 
    598     mr_asprintf(tarball_fname, "%s/tmpfs/temporary-%s", bkpinfo->tmpdir, p);
     625    sprintf(tarball_fname, "%s/tmpfs/temporary-%s", bkpinfo->tmpdir, p);
     626    sprintf(tmp, "Temporarily copying file from tape to '%s'",
     627            tarball_fname);
     628/*  log_it(tmp); */
    599629    read_file_from_stream_to_file(tarball_fname, size);
    600630    res = verify_a_tarball(tarball_fname);
    601631    if (res) {
    602         log_msg(0, "Afioball '%s' no longer matches your live filesystem", p);
     632        sprintf(tmp,
     633                "Afioball '%s' no longer matches your live filesystem", p);
     634        log_msg(0, tmp);
    603635        retval++;
    604636    }
    605637    unlink(tarball_fname);
    606     mr_free(tarball_fname);
     638    paranoid_free(tmp);
     639    paranoid_free(tarball_fname);
    607640    return (retval);
    608641}
     
    627660
    628661    /*@ char ************************************************************ */
    629     char *test_file = NULL;
    630     char *biggie_cksum = NULL;
    631     char *orig_cksum = NULL;
    632     char *tmp = NULL;
    633     char *slice_fnam = NULL;
     662    char *test_file;
     663    char *biggie_cksum;
     664    char *orig_cksum;
     665    char *tmp;
     666    char *slice_fnam;
    634667
    635668    /*@ pointers ******************************************************** */
     
    639672    long long slice_siz;
    640673
     674    malloc_string(test_file);
     675    malloc_string(biggie_cksum);
     676    malloc_string(orig_cksum);
     677    malloc_string(tmp);
    641678    malloc_string(slice_fnam);
    642679    assert(bkpinfo != NULL);
     
    649686        p++;
    650687    }
    651     mr_asprintf(test_file, "%s/temporary-%s", bkpinfo->tmpdir, p);
     688    sprintf(test_file, "%s/temporary-%s", bkpinfo->tmpdir, p);
     689    sprintf(tmp,
     690            "Temporarily copying biggiefile %s's slices from tape to '%s'",
     691            p, test_file);
     692/*  log_it(tmp); */
    652693    for (res =
    653694         read_header_block_from_stream(&slice_siz, slice_fnam, &ctrl_chr);
    654695         ctrl_chr != BLK_STOP_A_BIGGIE;
    655696         res =
    656          read_header_block_from_stream(&slice_siz, slice_fnam, &ctrl_chr)) {
     697         read_header_block_from_stream(&slice_siz, slice_fnam,
     698                                       &ctrl_chr)) {
    657699        if (ctrl_chr != BLK_START_AN_AFIO_OR_SLICE) {
    658700            wrong_marker(BLK_START_AN_AFIO_OR_SLICE, ctrl_chr);
     
    661703        unlink(test_file);
    662704        res =
    663             read_header_block_from_stream(&slice_siz, slice_fnam, &ctrl_chr);
     705            read_header_block_from_stream(&slice_siz, slice_fnam,
     706                                          &ctrl_chr);
    664707        if (ctrl_chr != BLK_STOP_AN_AFIO_OR_SLICE) {
    665708            log_msg(2, "test_file = %s", test_file);
     
    669712        retval += res;
    670713    }
    671     mr_asprintf(biggie_cksum, "%s", slice_fnam);
     714    strcpy(biggie_cksum, slice_fnam);
    672715    if (biggie_cksum[0] != '\0') {
    673         mr_asprintf(orig_cksum, "%s", calc_checksum_of_file(biggie_fname));
     716        strcpy(orig_cksum, calc_checksum_of_file(biggie_fname));
    674717        if (strcmp(biggie_cksum, orig_cksum)) {
    675             log_msg(2, "orig cksum=%s; curr cksum=%s", biggie_cksum, orig_cksum);
    676             log_to_screen("%s has changed on live filesystem", biggie_fname);
    677 
    678             mr_asprintf(tmp, "echo \"%s\" >> %s/biggies.changed", biggie_fname, bkpinfo->tmpdir);
     718            sprintf(tmp, "orig cksum=%s; curr cksum=%s", biggie_cksum,
     719                    orig_cksum);
     720            log_msg(2, tmp);
     721            sprintf(tmp, "%s has changed on live filesystem",
     722                    biggie_fname);
     723            log_to_screen(tmp);
     724            sprintf(tmp, "echo \"%s\" >> %s/biggies.changed",
     725                    biggie_fname, bkpinfo->tmpdir);
    679726            paranoid_system(tmp);
    680             mr_free(tmp);
    681         }
    682         mr_free(orig_cksum);
    683     }
    684     mr_free(biggie_cksum);
    685     mr_free(test_file);
     727        }
     728    }
     729    paranoid_free(test_file);
     730    paranoid_free(biggie_cksum);
     731    paranoid_free(orig_cksum);
     732    paranoid_free(tmp);
    686733    paranoid_free(slice_fnam);
    687734    return (retval);
     
    692739 * Verify all afioballs from the opened tape/CD stream.
    693740 * @param bkpinfo The backup information structure. Fields used:
     741 * - @c bkpinfo->restore_path
    694742 * - @c bkpinfo->tmpdir
    695743 *
     
    706754
    707755    /*@ buffers ***************************************************** */
    708     char *tmp = NULL;
     756    char *tmp;
    709757    char *fname;
    710758    char *curr_xattr_list_fname;
     
    715763
    716764    assert(bkpinfo != NULL);
     765    malloc_string(tmp);
    717766    malloc_string(fname);
    718767    malloc_string(curr_xattr_list_fname);
     
    767816            wrong_marker(BLK_START_AN_AFIO_OR_SLICE, ctrl_chr);
    768817        }
    769         mr_asprintf(tmp, "Verifying fileset #%ld", current_afioball_number);
     818        sprintf(tmp, "Verifying fileset #%ld", current_afioball_number);
     819        /*log_it(tmp); */
    770820        update_progress_form(tmp);
    771         mr_free(tmp);
    772 
    773821        res = verify_an_afioball_from_stream(fname, size);
    774822        if (res) {
    775             log_to_screen("Afioball %ld differs from live filesystem", current_afioball_number);
     823            sprintf(tmp, "Afioball %ld differs from live filesystem",
     824                    current_afioball_number);
     825            log_to_screen(tmp);
    776826        }
    777827        retval += res;
     
    785835    log_msg(1, "All done with afioballs");
    786836    close_progress_form();
     837    paranoid_free(tmp);
    787838    paranoid_free(fname);
    788839    paranoid_free(curr_xattr_list_fname);
     
    812863
    813864    /*@ buffers ******************************************************** */
    814     char *orig_fname;
    815     char *logical_fname = NULL;
    816     char *comment = NULL;
    817     char *curr_xattr_list_fname = NULL;
    818     char *curr_acl_list_fname = NULL;
     865    char *tmp;
     866    char *orig_fname, *logical_fname;
     867    char *comment;
     868    char *curr_xattr_list_fname;
     869    char *curr_acl_list_fname;
    819870    /*@ pointers ******************************************************* */
    820871    char *p;
     
    824875
    825876    assert(bkpinfo != NULL);
     877    malloc_string(tmp);
    826878    malloc_string(orig_fname);
     879    malloc_string(logical_fname);
     880    malloc_string(comment);
    827881    malloc_string(curr_xattr_list_fname);
    828882    malloc_string(curr_acl_list_fname);
     
    836890            bkpinfo->tmpdir);
    837891    }
    838     mr_asprintf(comment, "Verifying all bigfiles.");
     892    sprintf(comment, "Verifying all bigfiles.");
    839893    log_to_screen(comment);
     894    sprintf(tmp, "%s/biggielist.txt", bkpinfo->tmpdir);
     895//  noof_biggiefiles = count_lines_in_file (tmp); // pointless
    840896    res = read_header_block_from_stream(&size, orig_fname, &ctrl_chr);
    841897    if (ctrl_chr != BLK_START_BIGGIEFILES) {
     
    855911                       "Please wait. This may take some time.", "",
    856912                       noof_biggiefiles);
    857     mr_free(comment);
    858 
    859913    for (res = read_header_block_from_stream(&size, orig_fname, &ctrl_chr);
    860914         ctrl_chr != BLK_STOP_BIGGIEFILES;
     
    871925            p++;
    872926        }
    873         mr_asprintf(comment, "Verifying bigfile #%ld (%ld K)", current_biggiefile_number, (long) size >> 10);
     927        sprintf(comment, "Verifying bigfile #%ld (%ld K)",
     928                current_biggiefile_number, (long) size >> 10);
    874929        update_progress_form(comment);
    875         mr_free(comment);
    876 
    877         if (bkpinfo->restore_path) {
    878             mr_asprintf(logical_fname, "%s/%s", bkpinfo->restore_path, orig_fname);
    879             res = verify_a_biggiefile_from_stream(logical_fname, size);
    880             mr_free(logical_fname);
    881             retval += res;
    882         } else {
    883             log_it("Unable to verify bigfile as restore_path is NULL");
    884         }
    885 
     930        sprintf(logical_fname, "%s/%s", bkpinfo->restore_path, orig_fname);
     931        res =
     932            verify_a_biggiefile_from_stream(logical_fname, size);
     933        retval += res;
    886934        current_biggiefile_number++;
    887935        g_current_progress++;
     
    889937    close_progress_form();
    890938    paranoid_free(orig_fname);
     939    paranoid_free(logical_fname);
    891940    paranoid_free(curr_xattr_list_fname);
    892941    paranoid_free(curr_acl_list_fname);
     942    paranoid_free(comment);
     943    paranoid_free(tmp);
    893944    return (retval);
    894945}
     
    900951 * Verify the USB device
    901952 * @param bkpinfo The backup information structure. Fields used:
     953 * - @c bkpinfo->isodir
    902954 * - @c bkpinfo->media_device
    903955 * - @c bkpinfo->tmpdir
     
    929981    assert(bkpinfo != NULL);
    930982
    931     if (bkpinfo->media_device == NULL) {
    932         return(1);
    933     }
    934 
    935983    mr_asprintf(fname, "%s1", bkpinfo->media_device);
    936984    if (is_this_device_mounted(fname)) {
     
    9841032#endif
    9851033    {
    986         log_to_screen("%s failed; unable to unmount USB device\n", tmp1);
     1034        mr_asprintf(tmp, "%s failed; unable to unmount USB device\n", tmp1);
     1035        log_to_screen(tmp);
     1036        paranoid_free(tmp);
    9871037        retval++;
    9881038    } else {
    9891039        log_msg(2, "OK, I've unmounted the USB device\n");
    9901040    }
    991     mr_free(tmp1);
    992     mr_free(mountpoint);
     1041    paranoid_free(tmp1);
     1042    paranoid_free(mountpoint);
    9931043    return (retval);
    9941044}
     
    10161066
    10171067    /*@ buffers ******************************************************** */
    1018     char *mountpoint = NULL;
    1019     char *command = NULL;
    1020     char *tmp = NULL;
    1021     char *fname = NULL;
     1068    char *mountpoint;
     1069    char *command;
     1070    char *tmp;
     1071    char *fname;
    10221072#ifdef __FreeBSD__
    10231073    char mdd[32];
     
    10291079#endif
    10301080
     1081    command = malloc(2000);
     1082    malloc_string(mountpoint);
     1083    malloc_string(tmp);
     1084    malloc_string(fname);
     1085
    10311086    assert(bkpinfo != NULL);
    10321087
    1033     if (bkpinfo->media_device == NULL) {
    1034         return(1);
    1035     }
    1036 
    1037     mr_asprintf(mountpoint, "%s/cdrom", bkpinfo->tmpdir);
    1038     if (((bkpinfo->isodir == NULL) && (bkpinfo->netfs_remote_dir == NULL)) || (bkpinfo->prefix == NULL)) {
    1039         fatal_error("No iso filename preparation possible");
    1040     }
    1041     if (bkpinfo->netfs_remote_dir) {
    1042         // NETFS
    1043         mr_asprintf(fname, "%s/%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->netfs_remote_dir, bkpinfo->prefix, g_current_media_number);
    1044     } else {
    1045         // ISO
    1046         mr_asprintf(fname, "%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->prefix, g_current_media_number);
    1047     }
     1088    sprintf(mountpoint, "%s/cdrom", bkpinfo->tmpdir);
     1089    sprintf(fname, "%s/%s/%s-%d.iso", bkpinfo->isodir, bkpinfo->netfs_remote_dir,
     1090            bkpinfo->prefix, g_current_media_number);
    10481091
    10491092    mkdir(mountpoint, 1777);
    10501093    sync();
    10511094    if (!does_file_exist(fname)) {
    1052         log_msg(2, "%s not found; assuming you backed up to CD; verifying CD...", fname);
     1095        sprintf(tmp,
     1096                "%s not found; assuming you backed up to CD; verifying CD...",
     1097                fname);
     1098        log_msg(2, tmp);
    10531099        if (bkpinfo->manual_cd_tray) {
    10541100            popup_and_OK("Please push CD tray closed.");
     
    10561102        if (find_and_mount_actual_cd(mountpoint)) {
    10571103            log_to_screen("failed to mount actual CD");
    1058             mr_free(mountpoint);
    1059             mr_free(fname);
    10601104            return (1);
    10611105        }
    10621106    } else {
    1063         log_msg(2, "%s found; verifying ISO...", fname);
     1107        sprintf(tmp, "%s found; verifying ISO...", fname);
    10641108#ifdef __FreeBSD__
    10651109        ret = 0;
     
    10671111        mddevice = make_vn(fname);
    10681112        if (ret) {
    1069             log_to_screen("make_vn of %s failed; unable to verify ISO\n", fname);
    1070             mr_free(mountpoint);
    1071             mr_free(fname);
     1113            sprintf(tmp, "make_vn of %s failed; unable to verify ISO\n",
     1114                    fname);
     1115            log_to_screen(tmp);
    10721116            return (1);
    10731117        }
    1074         mr_asprintf(command, "mount_cd9660 %s %s", mddevice, mountpoint);
     1118        sprintf(command, "mount_cd9660 %s %s", mddevice, mountpoint);
    10751119#else
    1076         mr_asprintf(command, "mount -o loop,ro -t iso9660 %s %s", fname, mountpoint);
     1120        sprintf(command, "mount -o loop,ro -t iso9660 %s %s", fname,
     1121                mountpoint);
    10771122#endif
    10781123        if (run_program_and_log_output(command, FALSE)) {
    1079             log_to_screen("%s failed; unable to mount ISO image\n", command);
    1080             mr_free(mountpoint);
    1081             mr_free(command);
    1082             mr_free(fname);
     1124            sprintf(tmp, "%s failed; unable to mount ISO image\n",
     1125                    command);
     1126            log_to_screen(tmp);
    10831127            return (1);
    10841128        }
    1085         mr_free(command);
    10861129    }
    10871130    log_msg(2, "OK, I've mounted the ISO/CD\n");
    1088     mr_asprintf(tmp, "%s/archives/NOT-THE-LAST", mountpoint);
     1131    sprintf(tmp, "%s/archives/NOT-THE-LAST", mountpoint);
    10891132    if (!does_file_exist(tmp)) {
    10901133        log_msg
     
    10981141*/
    10991142    }
    1100     mr_free(tmp);
    1101 
    11021143    verify_afioballs_on_CD(mountpoint);
    11031144    log_it("before verify_all_slices");
     
    11061147#ifdef __FreeBSD__
    11071148    ret = 0;
    1108     mr_asprintf(command, "umount -d %s", mountpoint);
     1149    sprintf(command, "umount -d %s", mountpoint);
    11091150    ret += system(command);
    11101151    ret += kick_vn(mddevice);
    1111     if (ret) {
     1152    if (ret)
    11121153#else
    1113     mr_asprintf(command, "umount -d %s", mountpoint);
    1114     if (system(command)) {
     1154    sprintf(command, "umount -d %s", mountpoint);
     1155    if (system(command))
    11151156#endif
    1116         log_to_screen("%s failed; unable to unmount ISO image\n", command);
    1117 
     1157    {
     1158        sprintf(tmp, "%s failed; unable to unmount ISO image\n", command);
     1159        log_to_screen(tmp);
    11181160        retval++;
    11191161    } else {
    11201162        log_msg(2, "OK, I've unmounted the ISO file\n");
    11211163    }
    1122     mr_free(mountpoint);
    1123     mr_free(command);
    1124 
    11251164    if (!does_file_exist(fname)) {
    1126         mr_asprintf(command, "umount -d %s", bkpinfo->media_device);
     1165        sprintf(command, "umount -d %s", bkpinfo->media_device);
    11271166        run_program_and_log_output(command, 2);
    1128         mr_free(command);
    1129 
    1130         if (!bkpinfo->please_dont_eject && eject_device(bkpinfo->media_device)) {
     1167        if (!bkpinfo->please_dont_eject
     1168            && eject_device(bkpinfo->media_device)) {
    11311169            log_msg(2, "Failed to eject CD-ROM drive");
    11321170        }
    11331171    }
    1134     mr_free(fname);
     1172    paranoid_free(command);
     1173    paranoid_free(mountpoint);
     1174    paranoid_free(tmp);
     1175    paranoid_free(fname);
    11351176    return (retval);
    11361177}
     
    11501191
    11511192    /*@ buffers ******************************************************** */
    1152     char *tmp = NULL;
    1153     char *changed_files_fname = NULL;
     1193    char tmp[MAX_STR_LEN];
     1194    char changed_files_fname[MAX_STR_LEN];
    11541195
    11551196    /*@ long *********************************************************** */
     
    11651206    retval += verify_biggiefiles_from_stream();
    11661207/* find the final blocks */
    1167     sync();
     1208    paranoid_system("sync");
    11681209    sleep(2);
    11691210    closein_tape();
    11701211/* close tape; exit */
    11711212//  fclose(g_tape_stream); <-- not needed; is handled by closein_tape()
    1172     mr_asprintf(tmp, "rm -f %s/biggies.changed %s/changed.files 2> /dev/null", bkpinfo->tmpdir, bkpinfo->tmpdir);
     1213    sprintf(tmp, "rm -f %s/biggies.changed %s/changed.files 2> /dev/null", bkpinfo->tmpdir, bkpinfo->tmpdir);
    11731214    paranoid_system(tmp);
    1174     mr_free(tmp);
    1175 
    1176     mr_asprintf(changed_files_fname, "%s/changed.files", bkpinfo->tmpdir);
    1177     mr_asprintf(tmp, "grep -E '^%s:.*$' %s | cut -d'\"' -f2 | sort -u | awk '{print \"/\"$0;};' | tr -s '/' '/' | grep -v \"(total of\" | grep -v \"incheckentry.*xwait\" | grep -vE '^/afio:.*$' | grep -vE '^dev/.*$'  > %s", (bkpinfo->use_star) ? "star" : "afio", MONDO_LOGFILE, changed_files_fname);
     1215    sprintf(changed_files_fname, "%s/changed.files", bkpinfo->tmpdir);
     1216    sprintf(tmp,
     1217            "grep -E '^%s:.*$' %s | cut -d'\"' -f2 | sort -u | awk '{print \"/\"$0;};' | tr -s '/' '/' | grep -v \"(total of\" | grep -v \"incheckentry.*xwait\" | grep -vE '^/afio:.*$' | grep -vE '^dev/.*$'  > %s",
     1218            (bkpinfo->use_star) ? "star" : "afio", MONDO_LOGFILE,
     1219            changed_files_fname);
    11781220    log_msg(2, "Running command to derive list of changed files");
    11791221    log_msg(2, tmp);
    11801222    if (system(tmp)) {
    1181         if (does_file_exist(changed_files_fname) && length_of_file(changed_files_fname) > 2) {
    1182             log_to_screen("Warning - unable to check logfile to derive list of changed files");
     1223        if (does_file_exist(changed_files_fname)
     1224            && length_of_file(changed_files_fname) > 2) {
     1225            log_to_screen
     1226                ("Warning - unable to check logfile to derive list of changed files");
    11831227        } else {
    1184             log_to_screen("No differences found. Therefore, no 'changed.files' text file.");
    1185         }
    1186     }
    1187     mr_free(tmp);
    1188 
    1189     mr_asprintf(tmp, "cat %s/biggies.changed >> %s", bkpinfo->tmpdir, changed_files_fname);
     1228            log_to_screen
     1229                ("No differences found. Therefore, no 'changed.files' text file.");
     1230        }
     1231    }
     1232    sprintf(tmp, "cat %s/biggies.changed >> %s", bkpinfo->tmpdir, changed_files_fname);
    11901233    paranoid_system(tmp);
    1191     mr_free(tmp);
    11921234
    11931235    diffs = count_lines_in_file(changed_files_fname);
    11941236    if (diffs > 0) {
    1195         mr_asprintf(tmp, "cp -f %s %s/changed.files", changed_files_fname, MONDO_CACHE);
     1237        sprintf(tmp, "cp -f %s %s/changed.files", changed_files_fname,
     1238                MONDO_CACHE);
    11961239        run_program_and_log_output(tmp, FALSE);
    1197         mr_free(tmp);
    1198 
    1199         log_msg(0, "%ld files differed from live filesystem; type less %s or less %s/changed.files to see", diffs, changed_files_fname, MONDO_CACHE);
     1240        sprintf(tmp,
     1241                "%ld files differed from live filesystem; type less %s or less %s/changed.files to see",
     1242                diffs, changed_files_fname, MONDO_CACHE);
     1243        log_msg(0, tmp);
    12001244        log_to_screen("See "MONDO_CACHE"/changed.files for a list of nonmatching files.");
    12011245        log_to_screen("The files probably changed on filesystem, not on backup media.");
    1202     }
    1203     mr_free(changed_files_fname);
     1246        //      retval++;
     1247    }
    12041248    return (retval);
    12051249}
Note: See TracChangeset for help on using the changeset viewer.