Ignore:
Timestamp:
Feb 12, 2007, 11:49:41 PM (14 years ago)
Author:
Bruno Cornec
Message:

More memory updates around mondoarchive (addition of mr_setenv) (based on ideas sent as patches by Michel)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/stable/mondo/src/mondoarchive/main.c

    r1151 r1152  
    157157    struct s_bkpinfo *bkpinfo;
    158158    struct stat stbuf;
    159     char *tmp;
     159    char *tmp = NULL;
    160160    int res, retval;
    161161    char *say_at_end;
     
    178178
    179179    malloc_libmondo_global_strings();
    180     malloc_string(tmp);
    181180    malloc_string(say_at_end);
    182181
     
    194193    bkpinfo = mr_malloc(sizeof(struct s_bkpinfo));
    195194
    196     /* make sure PATH environmental variable allows access to mkfs, fdisk, etc. */
    197     strncpy(tmp, getenv("PATH"), MAX_STR_LEN - 1);
    198     tmp[MAX_STR_LEN - 1] = '\0';
    199     if (strlen(tmp) >= MAX_STR_LEN - 33) {
    200         fatal_error
    201             ("Your PATH environmental variable is too long. Please shorten it.");
    202     }
    203     strcat(tmp, ":/sbin:/usr/sbin:/usr/local/sbin");
    204     setenv("PATH", tmp, 1);
    205 
    206195    /* Add the ARCH environment variable for ia64 purposes */
    207     strncpy(tmp, get_architecture(), MAX_STR_LEN - 1);
    208     tmp[MAX_STR_LEN - 1] = '\0';
    209     setenv("ARCH", tmp, 1);
     196    setenv("ARCH", get_architecture(), 1);
    210197
    211198    /* Add MONDO_SHARE + others environment variable for mindi */
    212     setenv_mondo_share();
     199    setenv_mondo_var();
    213200
    214201    if (stat(MONDO_CACHE, &stbuf) != 0) {
     
    247234    if (argc == 4 && !strcmp(argv[1], "setfattr")) {
    248235        g_loglevel = 10;
    249 //      chdir("/tmp");
    250236        g_text_mode = TRUE;
    251237        setup_newt_stuff();
     
    257243        g_text_mode = TRUE;
    258244        setup_newt_stuff();
     245        malloc_string(tmp);
    259246        turn_wildcard_chars_into_literal_chars(tmp, argv[2]);
    260247        printf("in=%s; out=%s\n", argv[2], tmp);
     248        mr_free(tmp);
    261249        finish(1);
    262250    }
     
    276264    if (argc == 4 && !strcmp(argv[1], "setfacl")) {
    277265        g_loglevel = 10;
    278 //      chdir("/tmp");
    279266        g_text_mode = TRUE;
    280267        setup_newt_stuff();
     
    286273        g_text_mode = TRUE;
    287274        setup_newt_stuff();
     275        malloc_string(tmp);
    288276        if (find_cdrw_device(tmp)) {
    289277            printf("Failed to find CDR-RW drive\n");
     
    297285            printf("CD-ROM is at %s\n", tmp);
    298286        }
     287        mr_free(tmp);
    299288        finish(0);
    300289    }
     
    304293        g_text_mode = TRUE;
    305294        setup_newt_stuff();
     295        malloc_string(tmp);
    306296        if (find_dvd_device(tmp, atoi(argv[2]))) {
    307297            printf("Failed to find DVD drive\n");
     
    309299            printf("DVD is at %s\n", tmp);
    310300        }
     301        mr_free(tmp);
    311302        finish(0);
    312303    }
     
    380371        res = verify_data(bkpinfo);
    381372        if (res < 0) {
    382             sprintf(tmp, "%d difference%c found.", -res,
     373            mr_asprintf(&tmp, "%d difference%c found.", -res,
    383374                    (-res != 1) ? 's' : ' ');
    384375            strcat(say_at_end, tmp);
    385376            log_to_screen(tmp);
     377            mr_free(tmp);
    386378            res = 0;
    387379        }
     
    427419    }
    428420    log_to_screen(say_at_end);
    429     sprintf(tmp, "umount %s/tmpfs", bkpinfo->tmpdir);
     421    mr_asprintf(&tmp, "umount %s/tmpfs", bkpinfo->tmpdir);
    430422    run_program_and_log_output(tmp, TRUE);
     423    mr_free(tmp);
    431424    run_program_and_log_output(g_erase_tmpdir_and_scratchdir, TRUE);
    432425
     
    447440    free_libmondo_global_strings();
    448441    mr_free(say_at_end);
    449     mr_free(tmp);
    450442    mr_free(bkpinfo);
    451443
Note: See TracChangeset for help on using the changeset viewer.