Ignore:
Timestamp:
Aug 28, 2009, 2:41:30 AM (15 years ago)
Author:
Bruno Cornec
Message:
  • Replacement of some fgets by mr_getline to allow for dyn. memory management.
  • Backport of SElinux fix from 2.2.9
File:
1 edited

Legend:

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

    r2341 r2351  
    19271927
    19281928    /*@ pointers ******************************************* */
    1929     FILE *fin;
    1930     char *p;
     1929    FILE *fin = NULL;
    19311930
    19321931    /*@ buffers ******************************************** */
    19331932    char *tmp = NULL;
    1934     char *bigfile_fname;
     1933    char *bigfile_fname = NULL;
    19351934    char *sz_devfile = NULL;
    19361935    char *ntfsprog_fifo = NULL;
     
    19761975    }
    19771976
    1978     malloc_string(bigfile_fname);
    1979     for (fgets(bigfile_fname, MAX_STR_LEN, fin); !feof(fin);
    1980          fgets(bigfile_fname, MAX_STR_LEN, fin), biggie_file_number++) {
     1977    for (mr_getline(bigfile_fname, fin); !feof(fin); mr_getline(bigfile_fname, fin), biggie_file_number++) {
    19811978        use_ntfsprog = FALSE;
    19821979        if (bigfile_fname[strlen(bigfile_fname) - 1] < 32) {
     
    19911988                log_msg(3, "Unable to write to %s", bigfile_fname);
    19921989                // So skip it as it doesn't exist
     1990                mr_free(bigfile_fname);
    19931991                continue;
    19941992            } else {
     
    20011999            log_msg(2, "bigfile_fname = %s", bigfile_fname);
    20022000            use_ntfsprog = FALSE;
    2003             if (!strncmp(bigfile_fname, "/dev/", 5)
    2004                 && is_dev_an_NTFS_dev(bigfile_fname)) {
     2001            if (!strncmp(bigfile_fname, "/dev/", 5) && is_dev_an_NTFS_dev(bigfile_fname)) {
    20052002                use_ntfsprog = TRUE;
    20062003                log_msg(2, "Calling ntfsclone in background because %s is an NTFS partition", bigfile_fname);
     
    20102007                switch (pid = fork()) {
    20112008                case -1:
     2009                    mr_free(bigfile_fname);
    20122010                    mr_free(sz_devfile);
    20132011                    fatal_error("Fork failure");
     
    20322030            // Whether partition or biggiefile, just do your thang :-)
    20332031            if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
    2034                 write_header_block_to_stream(biggie_fsize, bigfile_fname,
    2035                                              use_ntfsprog ?
    2036                                              BLK_START_A_PIHBIGGIE :
    2037                                              BLK_START_A_NORMBIGGIE);
     2032                write_header_block_to_stream(biggie_fsize, bigfile_fname, use_ntfsprog ?  BLK_START_A_PIHBIGGIE : BLK_START_A_NORMBIGGIE);
    20382033            }
    20392034            res = slice_up_file_etc(bigfile_fname, ntfsprog_fifo, biggie_file_number, noof_biggie_files, use_ntfsprog);
     
    20422037            }
    20432038            retval += res;
    2044             p = strrchr(bigfile_fname, '/');
    2045             if (p) {
    2046                 p++;
    2047             } else {
    2048                 p = bigfile_fname;
    2049             }
    20502039            mr_asprintf(tmp, "Archiving %s ... ", bigfile_fname);
    20512040            if (res) {
     
    20592048            }
    20602049        }
     2050        mr_free(bigfile_fname);
    20612051#ifndef _XWIN
    20622052        if (!g_text_mode) {
     
    20672057        mr_free(tmp);
    20682058    }
     2059    mr_free(bigfile_fname);
     2060
    20692061    log_msg(1, "Finished backing up bigfiles");
    20702062    log_msg(1, "estimated slices = %ld; actual slices = %ld",
     
    20722064    close_progress_form();
    20732065    paranoid_fclose(fin);
    2074     paranoid_free(bigfile_fname);
    20752066    return (retval);
    20762067}
Note: See TracChangeset for help on using the changeset viewer.