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-rstr-compare.c

    r2332 r2334  
    4343
    4444  /** needs malloc *******/
    45     char *checksum_ptr;
    46     char *original_cksum_ptr;
    47     char *bigfile_fname_ptr;
     45    char *checksum_ptr = NULL;
     46    char *original_cksum_ptr = NULL;
     47    char *bigfile_fname_ptr = NULL;
    4848    char *tmp_ptr = NULL;
    4949    char *command_ptr = NULL;
    5050
    51     char *checksum, *original_cksum, *bigfile_fname, *tmp, *command;
     51    char *checksum, *bigfile_fname, *tmp, *command;
    5252
    5353    char *p;
     
    5858
    5959    malloc_string(checksum);
    60     malloc_string(original_cksum);
    6160    malloc_string(bigfile_fname);
    6261    malloc_string(tmp);
    6362    malloc_string(command);
    64     malloc_string(checksum_ptr);
    65     malloc_string(original_cksum_ptr);
    66     malloc_string(bigfile_fname_ptr);
    6763
    6864  /*********************************************************************
     
    7066   *********************************************************************/
    7167    assert(bkpinfo != NULL);
    72     memset(checksum_ptr, '\0', sizeof(checksum));
    73     memset(original_cksum_ptr, '\0', sizeof(original_cksum));
    74     memset(bigfile_fname_ptr, '\0', sizeof(bigfile_fname));
    7568  /** end **/
    7669
     
    8477    }
    8578    if (!(fin = fopen(slice_fname(bigfileno, 0, ARCHIVES_PATH, ""), "r"))) {
    86         log_to_screen("Cannot open bigfile %ld (%s)'s info file", bigfileno + 1, bigfile_fname_ptr);
     79        log_to_screen("Cannot open bigfile %ld (NULL)'s info file", bigfileno + 1);
    8780        return (1);
    8881    }
     
    9083    paranoid_fclose(fin);
    9184
    92     strcpy(checksum_ptr, biggiestruct.checksum);
    93     strcpy(bigfile_fname_ptr, biggiestruct.filename);
     85    mr_asprintf(checksum_ptr, "%s", biggiestruct.checksum);
     86    mr_asprintf(bigfile_fname_ptr, "%s", biggiestruct.filename);
    9487
    9588    log_msg(2, "biggiestruct.filename = %s", biggiestruct.filename);
     
    10699    }
    107100    if (!strncmp(bigfile_fname_ptr, "/dev/", 5)) {
    108         strcpy(original_cksum_ptr, "IGNORE");
    109101        log_msg(2, "IGNORING %s as begining with /dev", bigfile_fname_ptr);
     102        mr_free(bigfile_fname_ptr);
    110103        return (1);
    111104    }
     
    122115    if (i) {
    123116        log_OS_error("Warning - command failed");
    124         original_cksum[0] = '\0';
    125117        return (1);
    126118    } else {
     
    128120            log_msg(2,
    129121                    "Unable to open /tmp/md5sum.txt; can't get live checksum");
    130             original_cksum[0] = '\0';
     122            mr_free(bigfile_fname_ptr);
    131123            return (1);
    132124        } else {
    133             fgets(original_cksum_ptr, MAX_STR_LEN - 1, fin);
     125            mr_getline(original_cksum_ptr, fin);
    134126            paranoid_fclose(fin);
    135             for (i = strlen(original_cksum_ptr);
    136                  i > 0 && original_cksum[i - 1] < 32; i--);
    137             original_cksum[i] = '\0';
    138             p = (char *) strchr(original_cksum_ptr, ' ');
     127            p = strchr(original_cksum_ptr, ' ');
    139128            if (p) {
    140129                *p = '\0';
     
    143132    }
    144133    mr_asprintf(tmp_ptr, "bigfile #%ld ('%s') ", bigfileno + 1, bigfile_fname_ptr);
    145     if (!strcmp(checksum_ptr, original_cksum_ptr) != 0) {
     134    if ((original_cksum_ptr != NULL) && (strcmp(checksum_ptr, original_cksum_ptr) == 0)) {
    146135        mr_strcat(tmp_ptr, " ... OK");
    147136    } else {
     
    149138        retval++;
    150139    }
     140    mr_free(checksum_ptr);
     141    mr_free(original_cksum_ptr);
     142
    151143    log_msg(1, tmp_ptr);
    152144    paranoid_free(tmp_ptr);
     
    159151        paranoid_fclose(fout);
    160152    }
    161 
    162     paranoid_free(original_cksum_ptr);
    163     paranoid_free(original_cksum);
    164     paranoid_free(bigfile_fname_ptr);
     153    mr_free(bigfile_fname_ptr);
     154
    165155    paranoid_free(bigfile_fname);
    166     paranoid_free(checksum_ptr);
    167156    paranoid_free(checksum);
    168157    paranoid_free(command);
     
    365354  /**  needs malloc **********/
    366355
    367     char *tarball_fname, *progress_str;
     356    char *tarball_fname = NULL;
     357    char *progress_str = NULL;
    368358    char *tmp = NULL;
    369359    char *mds = NULL;
     
    443433        mvaddstr_and_log_it(g_currentY++, 74, "Done.");
    444434    }
    445     paranoid_free(tarball_fname);
    446     paranoid_free(progress_str);
    447435    return (retval);
    448436}
Note: See TracChangeset for help on using the changeset viewer.