Changeset 171 in MondoRescue for trunk/mondo/mondo/mondorestore/mondo-rstr-tools.c
- Timestamp:
- Dec 8, 2005, 5:20:29 PM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mondo/mondo/mondorestore/mondo-rstr-tools.c
r149 r171 202 202 * allocate memory regions. test and set -sab 16 feb 2003 * 203 203 ************************************************************************/ 204 char *incoming_ptr; 205 char *question_ptr; 206 207 char incoming[MAX_STR_LEN]; 208 char question[MAX_STR_LEN]; 204 char *incoming; 205 char *question; 206 207 size_t n = 0; 209 208 210 209 assert_string_is_neither_NULL_nor_zerolength(infname); 211 210 assert_string_is_neither_NULL_nor_zerolength(outfname); 212 211 213 incoming_ptr = malloc(sizeof(incoming));214 if (incoming_ptr == NULL) {215 fprintf(stderr, "Out of Memory\n");216 exit(EXIT_FAILURE);217 }218 219 question_ptr = malloc(sizeof(question));220 if (question_ptr == NULL) {221 fprintf(stderr, "Out of Memory\n");222 exit(EXIT_FAILURE);223 }224 225 memset(incoming_ptr, '\0', sizeof(incoming));226 memset(question_ptr, '\0', sizeof(question));227 228 229 230 212 if (!(fin = fopen(infname, "r"))) { 231 213 fatal_error("Cannot openin infname"); … … 234 216 fatal_error("Cannot openin outfname"); 235 217 } 236 for ( fgets(incoming_ptr, MAX_STR_LEN, fin);237 !feof(fin); fgets(incoming_ptr, MAX_STR_LEN, fin)) {238 strip_spaces(incoming _ptr);218 for (getline(&incoming, &n, fin); 219 !feof(fin); getline(&incoming, &n, fin)) { 220 strip_spaces(incoming); 239 221 240 222 if (incoming[0] == '\0') { … … 242 224 } 243 225 244 sprintf(question_ptr,245 "Should I restore the image of %s ?", incoming _ptr);246 247 if (ask_me_yes_or_no(question _ptr)) {248 fprintf(fout, "%s\n", incoming _ptr);226 asprintf(&question, 227 "Should I restore the image of %s ?", incoming); 228 229 if (ask_me_yes_or_no(question)) { 230 fprintf(fout, "%s\n", incoming); 249 231 } 250 232 } 251 233 252 234 /*** free memory ***********/ 253 paranoid_free(incoming_ptr); 254 incoming_ptr = NULL; 255 paranoid_free(question_ptr); 256 question_ptr = NULL; 235 paranoid_free(incoming); 236 paranoid_free(question); 257 237 258 238 … … 705 685 int mount_cdrom(struct s_bkpinfo *bkpinfo) 706 686 { 707 char *mount_cmd ;687 char *mount_cmd, *tmp; 708 688 int i, res; 709 689 #ifdef __FreeBSD__ … … 773 753 if (bkpinfo->disaster_recovery 774 754 && does_file_exist("/tmp/CDROM-LIVES-HERE")) { 775 strcpy(bkpinfo->media_device, 755 paranoid_free(bkpinfo->media_device); 756 asprintf(&tmp, 776 757 last_line_of_file("/tmp/CDROM-LIVES-HERE")); 758 bkpinfo->media_device = tmp; 777 759 } else { 778 find_cdrom_device(bkpinfo->media_device, TRUE); 760 paranoid_free(bkpinfo->media_device); 761 bkpinfo->media_device = find_cdrom_device(TRUE); 779 762 } 780 763 … … 1061 1044 if (bkpinfo->disaster_recovery) { 1062 1045 if (bkpinfo->backup_media_type == cdstream) { 1063 sprintf(bkpinfo->media_device, "/dev/cdrom"); 1064 // bkpinfo->media_size[0] = -1; 1046 paranoid_alloc(bkpinfo->media_device, "/dev/cdrom"); 1065 1047 bkpinfo->media_size[0] = 1999 * 1024; 1066 1048 bkpinfo->media_size[1] = 650; /* good guess */ 1067 1049 } else if (bkpinfo->backup_media_type == tape 1068 1050 || bkpinfo->backup_media_type == udev) { 1069 if (read_cfg_var(cfg_file, "media-dev", value)) {1051 if (read_cfg_var(cfg_file, "media-dev", bkpinfo->media_device)) { 1070 1052 fatal_error("Cannot get tape device name from cfg file"); 1071 1053 } 1072 strcpy(bkpinfo->media_device, value);1073 1054 read_cfg_var(cfg_file, "media-size", value); 1074 1055 bkpinfo->media_size[1] = atol(value); … … 1077 1058 log_msg(2, tmp); 1078 1059 } else { 1079 strcpy(bkpinfo->media_device, "/dev/cdrom"); /* we don't really need this var */1060 paranoid_alloc(bkpinfo->media_device, "/dev/cdrom"); 1080 1061 bkpinfo->media_size[0] = 1999 * 1024; /* 650, probably, but we don't need this var anyway */ 1081 1062 bkpinfo->media_size[1] = 1999 * 1024; /* 650, probably, but we don't need this var anyway */ … … 1200 1181 "Unable to mount isodir. Perhaps this is really a CD backup?"); 1201 1182 bkpinfo->backup_media_type = cdr; 1202 strcpy(bkpinfo->media_device, "/dev/cdrom"); /* superfluous */1183 paranoid_alloc(bkpinfo->media_device, "/dev/cdrom"); 1203 1184 bkpinfo->isodir[0] = iso_mnt[0] = iso_path[0] = '\0'; 1204 1185 if (mount_cdrom(bkpinfo)) { … … 2387 2368 char *mounted_cfgf_path; 2388 2369 char *tmp; 2370 char *sav; 2389 2371 char *mountpt; 2390 2372 char *ramdisk_fname; … … 2491 2473 2492 2474 if (strlen(bkpinfo->media_device) == 0) { 2493 strcpy(bkpinfo->media_device, "/dev/st0");2494 log_msg(2, "media_device is blank; assuming %s" );2495 } 2496 strcpy(tmp,bkpinfo->media_device);2475 paranoid_alloc(bkpinfo->media_device, "/dev/st0"); 2476 log_msg(2, "media_device is blank; assuming %s", bkpinfo->media_device); 2477 } 2478 asprintf(&sav,bkpinfo->media_device); 2497 2479 if (extract_cfg_file_and_mountlist_from_tape_dev 2498 2480 (bkpinfo->media_device)) { 2499 strcpy(bkpinfo->media_device, "/dev/st0");2481 paranoid_alloc(bkpinfo->media_device, "/dev/st0"); 2500 2482 if (extract_cfg_file_and_mountlist_from_tape_dev 2501 2483 (bkpinfo->media_device)) { 2502 strcpy(bkpinfo->media_device, "/dev/osst0");2484 paranoid_alloc(bkpinfo->media_device, "/dev/osst0"); 2503 2485 if (extract_cfg_file_and_mountlist_from_tape_dev 2504 2486 (bkpinfo->media_device)) { 2505 strcpy(bkpinfo->media_device, "/dev/ht0");2487 paranoid_alloc(bkpinfo->media_device, "/dev/ht0"); 2506 2488 if (extract_cfg_file_and_mountlist_from_tape_dev 2507 2489 (bkpinfo->media_device)) { 2508 2490 log_msg(3, 2509 2491 "I tried lots of devices but none worked."); 2510 strcpy(bkpinfo->media_device, tmp);2492 paranoid_alloc(bkpinfo->media_device, sav); 2511 2493 } 2512 2494 } 2513 2495 } 2514 2496 } 2497 paranoid_free(sav); 2515 2498 2516 2499 if (!does_file_exist("tmp/mondo-restore.cfg")) {
Note:
See TracChangeset
for help on using the changeset viewer.