Changeset 1152 in MondoRescue for branches/stable/mondo/src/mondoarchive/main.c
- Timestamp:
- Feb 12, 2007, 11:49:41 PM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/stable/mondo/src/mondoarchive/main.c
r1151 r1152 157 157 struct s_bkpinfo *bkpinfo; 158 158 struct stat stbuf; 159 char *tmp ;159 char *tmp = NULL; 160 160 int res, retval; 161 161 char *say_at_end; … … 178 178 179 179 malloc_libmondo_global_strings(); 180 malloc_string(tmp);181 180 malloc_string(say_at_end); 182 181 … … 194 193 bkpinfo = mr_malloc(sizeof(struct s_bkpinfo)); 195 194 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_error201 ("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 206 195 /* 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); 210 197 211 198 /* Add MONDO_SHARE + others environment variable for mindi */ 212 setenv_mondo_ share();199 setenv_mondo_var(); 213 200 214 201 if (stat(MONDO_CACHE, &stbuf) != 0) { … … 247 234 if (argc == 4 && !strcmp(argv[1], "setfattr")) { 248 235 g_loglevel = 10; 249 // chdir("/tmp");250 236 g_text_mode = TRUE; 251 237 setup_newt_stuff(); … … 257 243 g_text_mode = TRUE; 258 244 setup_newt_stuff(); 245 malloc_string(tmp); 259 246 turn_wildcard_chars_into_literal_chars(tmp, argv[2]); 260 247 printf("in=%s; out=%s\n", argv[2], tmp); 248 mr_free(tmp); 261 249 finish(1); 262 250 } … … 276 264 if (argc == 4 && !strcmp(argv[1], "setfacl")) { 277 265 g_loglevel = 10; 278 // chdir("/tmp");279 266 g_text_mode = TRUE; 280 267 setup_newt_stuff(); … … 286 273 g_text_mode = TRUE; 287 274 setup_newt_stuff(); 275 malloc_string(tmp); 288 276 if (find_cdrw_device(tmp)) { 289 277 printf("Failed to find CDR-RW drive\n"); … … 297 285 printf("CD-ROM is at %s\n", tmp); 298 286 } 287 mr_free(tmp); 299 288 finish(0); 300 289 } … … 304 293 g_text_mode = TRUE; 305 294 setup_newt_stuff(); 295 malloc_string(tmp); 306 296 if (find_dvd_device(tmp, atoi(argv[2]))) { 307 297 printf("Failed to find DVD drive\n"); … … 309 299 printf("DVD is at %s\n", tmp); 310 300 } 301 mr_free(tmp); 311 302 finish(0); 312 303 } … … 380 371 res = verify_data(bkpinfo); 381 372 if (res < 0) { 382 sprintf(tmp, "%d difference%c found.", -res,373 mr_asprintf(&tmp, "%d difference%c found.", -res, 383 374 (-res != 1) ? 's' : ' '); 384 375 strcat(say_at_end, tmp); 385 376 log_to_screen(tmp); 377 mr_free(tmp); 386 378 res = 0; 387 379 } … … 427 419 } 428 420 log_to_screen(say_at_end); 429 sprintf(tmp, "umount %s/tmpfs", bkpinfo->tmpdir);421 mr_asprintf(&tmp, "umount %s/tmpfs", bkpinfo->tmpdir); 430 422 run_program_and_log_output(tmp, TRUE); 423 mr_free(tmp); 431 424 run_program_and_log_output(g_erase_tmpdir_and_scratchdir, TRUE); 432 425 … … 447 440 free_libmondo_global_strings(); 448 441 mr_free(say_at_end); 449 mr_free(tmp);450 442 mr_free(bkpinfo); 451 443
Note:
See TracChangeset
for help on using the changeset viewer.