Changeset 900 in MondoRescue for trunk/mondo/src/mondorestore/mondo-restore.c
- Timestamp:
- Oct 24, 2006, 8:49:18 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mondo/src/mondorestore/mondo-restore.c
r851 r900 23 23 #include <pthread.h> 24 24 #endif 25 #include "mr_mem.h" 25 26 26 27 extern void twenty_seconds_til_yikes(void); … … 160 161 assert(raidlist != NULL); 161 162 if (!bkpinfo->disaster_recovery) { 162 paranoid_alloc(g_mountlist_fname, "/tmp/mountlist.txt");163 mr_allocstr(g_mountlist_fname, "/tmp/mountlist.txt"); 163 164 log_msg(2, "I guess you're testing edit_mountlist()"); 164 165 } … … 274 275 } 275 276 if (g_ISO_restore_mode) { 276 asprintf(&tmp, "umount %s", bkpinfo->isodir);277 mr_asprintf(&tmp, "umount %s", bkpinfo->isodir); 277 278 run_program_and_log_output(tmp, FALSE); 278 paranoid_free(tmp);279 mr_free(tmp); 279 280 } 280 281 paranoid_MR_finish(0); … … 386 387 save_mountlist_to_disk(mountlist, g_mountlist_fname); 387 388 tmp1 = find_my_editor(); 388 asprintf(&tmp, "%s %s", tmp1, g_mountlist_fname);389 paranoid_free(tmp1);389 mr_asprintf(&tmp, "%s %s", tmp1, g_mountlist_fname); 390 mr_free(tmp1); 390 391 391 392 res = system(tmp); 392 paranoid_free(tmp);393 mr_free(tmp); 393 394 load_mountlist(mountlist, g_mountlist_fname); 394 395 } else { … … 500 501 ask_me_yes_or_no 501 502 (_("Do you want me to restore _some_ of your data?")))) { 502 asprintf(&old_restpath,bkpinfo->restore_path);503 mr_asprintf(&old_restpath,bkpinfo->restore_path); 503 504 for (done = FALSE; !done;) { 504 505 unlink("/tmp/filelist.full"); … … 514 515 if (!strcmp(bkpinfo->restore_path, "/")) { 515 516 if (!ask_me_yes_or_no(_("Are you sure?"))) { 516 paranoid_alloc(bkpinfo->restore_path, old_restpath);517 mr_allocstr(bkpinfo->restore_path, old_restpath); 517 518 goto gotos_suck; 518 519 } 519 paranoid_alloc(bkpinfo->restore_path, ""); // so we restore to [blank]/file/name :)520 mr_allocstr(bkpinfo->restore_path, ""); // so we restore to [blank]/file/name :) 520 521 } 521 522 log_msg(1, "Restoring subset"); … … 523 524 free_filelist(filelist); 524 525 } else { 525 paranoid_alloc(bkpinfo->restore_path,old_restpath);526 mr_allocstr(bkpinfo->restore_path,old_restpath); 526 527 free_filelist(filelist); 527 528 } … … 534 535 } 535 536 } 536 paranoid_free(old_restpath);537 mr_free(old_restpath); 537 538 } else { 538 539 mvaddstr_and_log_it(g_currentY++, … … 567 568 ("Using e2label to label your ext2,3 partitions")); 568 569 if (does_file_exist("/tmp/fstab.new")) { 569 asprintf(&fstab_fname, "/tmp/fstab.new");570 mr_asprintf(&fstab_fname, "/tmp/fstab.new"); 570 571 } else { 571 asprintf(&fstab_fname, "/tmp/fstab");572 } 573 asprintf(&tmp,572 mr_asprintf(&fstab_fname, "/tmp/fstab"); 573 } 574 mr_asprintf(&tmp, 574 575 "label-partitions-as-necessary %s < %s >> %s 2>> %s", 575 576 g_mountlist_fname, fstab_fname, MONDO_LOGFILE, 576 577 MONDO_LOGFILE); 577 paranoid_free(fstab_fname);578 mr_free(fstab_fname); 578 579 579 580 res = system(tmp); 580 paranoid_free(tmp);581 mr_free(tmp); 581 582 if (res) { 582 583 log_to_screen … … 679 680 (strstr(tmp1,"RESTORE") == NULL)) { 680 681 /* -H option */ 681 asprintf(&tmp,682 mr_asprintf(&tmp, 682 683 _ 683 684 (" Mondo has restored your system. Please remove the backup media and reboot.\n\nPlease visit our website at http://www.mondorescue.org for more information.")); 684 685 popup_and_OK(tmp); 685 paranoid_free(tmp);686 } 687 paranoid_free(tmp1);686 mr_free(tmp); 687 } 688 mr_free(tmp1); 688 689 689 690 log_to_screen(_ … … 739 740 resize_mountlist_proportionately_to_suit_new_drives(mountlist); 740 741 } 741 paranoid_free(tmp);742 mr_free(tmp); 742 743 743 744 if (!evaluate_mountlist(mountlist, tmpA, tmpB, tmpC)) { 744 asprintf(&tmp,745 mr_asprintf(&tmp, 745 746 _ 746 747 ("Mountlist analyzed. Result: \"%s %s %s\" Switch to Interactive Mode?"), 747 748 tmpA, tmpB, tmpC); 748 749 if (ask_me_yes_or_no(tmp)) { 749 paranoid_free(tmp);750 mr_free(tmp); 750 751 retval = interactive_mode(bkpinfo, mountlist, raidlist); 751 752 goto after_the_nuke; 752 753 } else { 753 paranoid_free(tmp);754 mr_free(tmp); 754 755 fatal_error("Nuke Mode aborted. "); 755 756 } … … 787 788 } 788 789 } 789 paranoid_free(tmp);790 mr_free(tmp); 790 791 791 792 retval += res; … … 840 841 ("Using e2label to label your ext2,3 partitions")); 841 842 842 asprintf(&tmp, "label-partitions-as-necessary %s < /tmp/fstab",843 mr_asprintf(&tmp, "label-partitions-as-necessary %s < /tmp/fstab", 843 844 g_mountlist_fname); 844 845 res = run_program_and_log_output(tmp, TRUE); 845 paranoid_free(tmp);846 mr_free(tmp); 846 847 847 848 if (res) { … … 916 917 } 917 918 918 paranoid_alloc(bkpinfo->restore_path, "/");919 mr_allocstr(bkpinfo->restore_path, "/"); 919 920 if (!g_restoring_live_from_cd) { 920 921 popup_and_OK … … 945 946 if (filelist) { 946 947 save_filelist(filelist, "/tmp/selected-files.txt"); 947 asprintf(&old_restpath,bkpinfo->restore_path);948 mr_asprintf(&old_restpath,bkpinfo->restore_path); 948 949 if (popup_and_get_string(_("Restore path"), 949 950 _("Restore files to where? )"), … … 953 954 } 954 955 free_filelist(filelist); 955 paranoid_alloc(bkpinfo->restore_path,old_restpath);956 mr_allocstr(bkpinfo->restore_path,old_restpath); 956 957 } 957 958 if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) { … … 1034 1035 if (!(fin = fopen(tmp,"r"))) { 1035 1036 log_to_screen(_("Cannot even open bigfile's info file")); 1036 paranoid_free(tmp);1037 mr_free(tmp); 1037 1038 return (pathname_of_last_file_restored); 1038 1039 } 1039 paranoid_free(tmp);1040 mr_free(tmp); 1040 1041 1041 1042 memset((void *) &biggiestruct, 0, sizeof(biggiestruct)); … … 1047 1048 paranoid_fclose(fin); 1048 1049 1049 asprintf(&checksum, biggiestruct.checksum);1050 mr_asprintf(&checksum, biggiestruct.checksum); 1050 1051 1051 1052 if (!checksum[0]) { 1052 asprintf(&tmp, "Warning - bigfile %ld does not have a checksum",1053 mr_asprintf(&tmp, "Warning - bigfile %ld does not have a checksum", 1053 1054 bigfileno + 1); 1054 1055 log_msg(3, tmp); 1055 paranoid_free(tmp);1056 mr_free(tmp); 1056 1057 /* BERLIOS : Useless ??? 1057 1058 p = checksum; 1058 1059 */ 1059 1060 } 1060 paranoid_free(checksum);1061 mr_free(checksum); 1061 1062 1062 1063 if (!strncmp(biggiestruct.filename, "/dev/", 5)) // Whether NTFS or not :) 1063 1064 { 1064 asprintf(&outfile_fname, biggiestruct.filename);1065 mr_asprintf(&outfile_fname, biggiestruct.filename); 1065 1066 } else { 1066 asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path,1067 mr_asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path, 1067 1068 biggiestruct.filename); 1068 1069 } … … 1101 1102 "Calling ntfsclone in background because %s is an NTFS /dev entry", 1102 1103 outfile_fname); 1103 asprintf(&ntfsprog_fifo, "/tmp/%d.%d.000", (int) (random() % 32768),1104 mr_asprintf(&ntfsprog_fifo, "/tmp/%d.%d.000", (int) (random() % 32768), 1104 1105 (int) (random() % 32768)); 1105 1106 mkfifo(ntfsprog_fifo, 0x770); … … 1125 1126 } 1126 1127 // BERLIOS: Is it the right place ?? 1127 paranoid_free(ntfsprog_fifo);1128 mr_free(ntfsprog_fifo); 1128 1129 } else { 1129 1130 use_ntfsprog_hack = FALSE; … … 1135 1136 } 1136 1137 1137 asprintf(&tmp, "Reassembling big file %ld (%s)", bigfileno + 1,1138 mr_asprintf(&tmp, "Reassembling big file %ld (%s)", bigfileno + 1, 1138 1139 outfile_fname); 1139 1140 log_msg(2, tmp); 1140 paranoid_free(tmp);1141 mr_free(tmp); 1141 1142 1142 1143 /* … … 1146 1147 */ 1147 1148 1148 asprintf(&pathname_of_last_file_restored, biggiestruct.filename);1149 mr_asprintf(&pathname_of_last_file_restored, biggiestruct.filename); 1149 1150 1150 1151 log_msg(3, "file_to_openout = %s", file_to_openout); … … 1165 1166 g_current_media_number); 1166 1167 g_current_media_number++; 1167 asprintf(&tmp3,1168 mr_asprintf(&tmp3, 1168 1169 "Asking for %s #%d so that I may read slice #%ld\n", 1169 1170 bkpinfo->backup_media_string, 1170 1171 g_current_media_number, sliceno); 1171 1172 log_msg(2, tmp3); 1172 paranoid_free(tmp3);1173 1174 asprintf(&tmp3, _("Restoring from %s #%d"),1173 mr_free(tmp3); 1174 1175 mr_asprintf(&tmp3, _("Restoring from %s #%d"), 1175 1176 bkpinfo->backup_media_string, 1176 1177 g_current_media_number); 1177 1178 log_to_screen(tmp3); 1178 paranoid_free(tmp3);1179 mr_free(tmp3); 1179 1180 1180 1181 insist_on_this_cd_number(bkpinfo, g_current_media_number); … … 1189 1190 } else { 1190 1191 if (does_file_exist(tmp1)) { 1191 asprintf(&bzip2_command, "lzop -dc %s 2>> %s",tmp1, MONDO_LOGFILE);1192 mr_asprintf(&bzip2_command, "lzop -dc %s 2>> %s",tmp1, MONDO_LOGFILE); 1192 1193 } else if (does_file_exist(tmp2)) { 1193 asprintf(&bzip2_command, "bzip2 -dc %s 2>> %s",tmp2, MONDO_LOGFILE);1194 mr_asprintf(&bzip2_command, "bzip2 -dc %s 2>> %s",tmp2, MONDO_LOGFILE); 1194 1195 } else if (does_file_exist(tmp)) { 1195 asprintf(&bzip2_command, "%s", "");1196 mr_asprintf(&bzip2_command, "%s", ""); 1196 1197 } else { 1197 1198 log_to_screen(_("OK, that's pretty fsck0red...")); … … 1201 1202 1202 1203 if (bzip2_command == NULL) { 1203 asprintf(&bzip2_command, "cat %s 2>> %s", tmp, MONDO_LOGFILE);1204 } 1205 asprintf(&tmp3, "Working on %s #%d, file #%ld, slice #%ld ",1204 mr_asprintf(&bzip2_command, "cat %s 2>> %s", tmp, MONDO_LOGFILE); 1205 } 1206 mr_asprintf(&tmp3, "Working on %s #%d, file #%ld, slice #%ld ", 1206 1207 bkpinfo->backup_media_string, 1207 1208 g_current_media_number, bigfileno + 1, sliceno); … … 1212 1213 update_progress_form(tmp3); 1213 1214 } 1214 paranoid_free(tmp3);1215 mr_free(tmp3); 1215 1216 1216 1217 if (!(fbzip2 = popen(bzip2_command, "r"))) { 1217 1218 fatal_error("Can't run popen command"); 1218 1219 } 1219 paranoid_free(bzip2_command);1220 mr_free(bzip2_command); 1220 1221 1221 1222 while (!feof(fbzip2)) { … … 1223 1224 if (siz > 0) { 1224 1225 siz1 = fwrite(bigblk, 1, siz, fout); 1225 asprintf(&sz_msg, "Read %ld from fbzip2; written %ld to fout", siz, siz1);1226 mr_asprintf(&sz_msg, "Read %ld from fbzip2; written %ld to fout", siz, siz1); 1226 1227 log_it(sz_msg); 1227 paranoid_free(sz_msg);1228 mr_free(sz_msg); 1228 1229 } 1229 1230 } … … 1234 1235 g_current_progress++; 1235 1236 } 1236 paranoid_free(tmp);1237 paranoid_free(tmp1);1238 paranoid_free(tmp2);1237 mr_free(tmp); 1238 mr_free(tmp1); 1239 mr_free(tmp2); 1239 1240 } 1240 1241 paranoid_fclose(fout); … … 1243 1244 if (use_ntfsprog_hack) { 1244 1245 log_msg(3, "Waiting for ntfsclone to finish"); 1245 asprintf(&tmp,1246 mr_asprintf(&tmp, 1246 1247 " ps | grep \" ntfsclone \" | grep -v grep > /dev/null 2> /dev/null"); 1247 1248 while (system(tmp) == 0) { 1248 1249 sleep(1); 1249 1250 } 1250 paranoid_free(tmp);1251 mr_free(tmp); 1251 1252 log_it("OK, ntfsclone has really finished"); 1252 1253 } … … 1260 1261 utime(outfile_fname, ubuf); 1261 1262 } 1262 paranoid_free(outfile_fname);1263 paranoid_free(bigblk);1263 mr_free(outfile_fname); 1264 mr_free(bigblk); 1264 1265 1265 1266 return (pathname_of_last_file_restored); … … 1329 1330 } 1330 1331 1331 asprintf(&pathname_of_last_file_restored, orig_bf_fname);1332 mr_asprintf(&pathname_of_last_file_restored, orig_bf_fname); 1332 1333 1333 1334 /* open out to biggiefile to be restored (or /dev/null if biggiefile is not to be restored) */ … … 1359 1360 if (use_ntfsprog) { 1360 1361 g_loglevel = 4; 1361 asprintf(&outfile_fname, orig_bf_fname);1362 mr_asprintf(&outfile_fname, orig_bf_fname); 1362 1363 use_ntfsprog_hack = TRUE; 1363 1364 log_msg(2, 1364 1365 "Calling ntfsclone in background because %s is a /dev entry", 1365 1366 outfile_fname); 1366 asprintf(&ntfsprog_fifo, "%s/%d.%d.000",1367 mr_asprintf(&ntfsprog_fifo, "%s/%d.%d.000", 1367 1368 bkpinfo->tmpdir, 1368 1369 (int) (random() % 32768), … … 1387 1388 (long int) (pid)); 1388 1389 } 1389 paranoid_free(ntfsprog_fifo);1390 mr_free(ntfsprog_fifo); 1390 1391 } else { 1391 1392 if (!strncmp(orig_bf_fname, "/dev/", 5)) // non-NTFS partition 1392 1393 { 1393 asprintf(&outfile_fname, orig_bf_fname);1394 mr_asprintf(&outfile_fname, orig_bf_fname); 1394 1395 } else // biggiefile 1395 1396 { 1396 asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path,1397 mr_asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path, 1397 1398 orig_bf_fname); 1398 1399 } … … 1403 1404 make_hole_for_file(outfile_fname); 1404 1405 } 1405 asprintf(&tmp1, "Reassembling big file %ld (%s)",1406 mr_asprintf(&tmp1, "Reassembling big file %ld (%s)", 1406 1407 biggiefile_number + 1, orig_bf_fname); 1407 1408 log_msg(2, tmp1); 1408 paranoid_free(tmp1);1409 mr_free(tmp1); 1409 1410 } 1410 1411 1411 1412 if (dummy_restore) { 1412 paranoid_free(outfile_fname);1413 asprintf(&outfile_fname, "/dev/null");1413 mr_free(outfile_fname); 1414 mr_asprintf(&outfile_fname, "/dev/null"); 1414 1415 } 1415 1416 1416 1417 if (bkpinfo->zip_exe == NULL) { 1417 asprintf(&command, "cat > \"%s\"", file_to_openout);1418 mr_asprintf(&command, "cat > \"%s\"", file_to_openout); 1418 1419 } else { 1419 asprintf(&command, "%s -dc > \"%s\" 2>> %s", bkpinfo->zip_exe,1420 mr_asprintf(&command, "%s -dc > \"%s\" 2>> %s", bkpinfo->zip_exe, 1420 1421 file_to_openout, MONDO_LOGFILE); 1421 1422 } 1422 asprintf(&tmp1, "Pipe command = '%s'", command);1423 mr_asprintf(&tmp1, "Pipe command = '%s'", command); 1423 1424 log_msg(3, tmp1); 1424 paranoid_free(tmp1);1425 mr_free(tmp1); 1425 1426 1426 1427 /* restore biggiefile, one slice at a time */ … … 1428 1429 fatal_error("Cannot pipe out"); 1429 1430 } 1430 paranoid_free(command);1431 mr_free(command); 1431 1432 1432 1433 for (res = read_header_block_from_stream(&slice_siz, tmp, &ctrl_chr); … … 1436 1437 wrong_marker(BLK_START_AN_AFIO_OR_SLICE, ctrl_chr); 1437 1438 } 1438 asprintf(&tmp1, "Working on file #%ld, slice #%ld ",1439 mr_asprintf(&tmp1, "Working on file #%ld, slice #%ld ", 1439 1440 biggiefile_number + 1, current_slice_number); 1440 1441 log_msg(2, tmp1); … … 1446 1447 strip_spaces(tmp1); 1447 1448 update_progress_form(tmp1); 1448 paranoid_free(tmp1);1449 mr_free(tmp1); 1449 1450 1450 1451 if (current_slice_number == 0) { … … 1477 1478 g_current_progress++; 1478 1479 } 1479 paranoid_free(tmp);1480 mr_free(tmp); 1480 1481 paranoid_pclose(pout); 1481 1482 … … 1485 1486 if (use_ntfsprog_hack) { 1486 1487 log_msg(3, "Waiting for ntfsclone to finish"); 1487 asprintf(&tmp,1488 mr_asprintf(&tmp, 1488 1489 " ps | grep \" ntfsclone \" | grep -v grep > /dev/null 2> /dev/null"); 1489 1490 while (system(tmp) == 0) { 1490 1491 sleep(1); 1491 1492 } 1492 paranoid_free(tmp);1493 mr_free(tmp); 1493 1494 log_msg(3, "OK, ntfsclone has really finished"); 1494 1495 } … … 1505 1506 } 1506 1507 1507 paranoid_free(outfile_fname);1508 mr_free(outfile_fname); 1508 1509 g_loglevel = old_loglevel; 1509 1510 return (pathname_of_last_file_restored); … … 1551 1552 log_msg(5, "Entering"); 1552 1553 use_star = (strstr(tarball_fname, ".star")) ? TRUE : FALSE; 1553 asprintf(&command, "mkdir -p %s/tmp", MNT_RESTORING);1554 mr_asprintf(&command, "mkdir -p %s/tmp", MNT_RESTORING); 1554 1555 run_program_and_log_output(command, 9); 1555 paranoid_free(command);1556 1557 asprintf(&filelist_name, MNT_CDROM "/archives/filelist.%ld",1556 mr_free(command); 1557 1558 mr_asprintf(&filelist_name, MNT_CDROM "/archives/filelist.%ld", 1558 1559 current_tarball_number); 1559 1560 if (length_of_file(filelist_name) <= 2) { … … 1572 1573 log_msg(3, "length_of_file(%s) = %llu", tarball_fname, 1573 1574 length_of_file(tarball_fname)); 1574 asprintf(&tmp, "Unable to restore fileset #%ld (CD I/O error)",1575 mr_asprintf(&tmp, "Unable to restore fileset #%ld (CD I/O error)", 1575 1576 current_tarball_number); 1576 1577 log_to_screen(tmp); 1577 paranoid_free(tmp);1578 mr_free(tmp); 1578 1579 retval = 1; 1579 1580 log_msg(5, "Leaving"); … … 1582 1583 1583 1584 if (filelist) { 1584 asprintf(&filelist_subset_fname, "/tmp/filelist-subset-%ld.tmp",1585 mr_asprintf(&filelist_subset_fname, "/tmp/filelist-subset-%ld.tmp", 1585 1586 current_tarball_number); 1586 1587 if ((matches = … … 1589 1590 use_star)) 1590 1591 <= 0) { 1591 asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);1592 mr_asprintf(&tmp, "Skipping fileset %ld", current_tarball_number); 1592 1593 log_msg(1, tmp); 1593 paranoid_free(tmp);1594 mr_free(tmp); 1594 1595 } else { 1595 1596 log_msg(3, "Saved fileset %ld's subset to %s", 1596 1597 current_tarball_number, filelist_subset_fname); 1597 1598 } 1598 asprintf(&tmp, "Tarball #%ld --- %ld matches",1599 mr_asprintf(&tmp, "Tarball #%ld --- %ld matches", 1599 1600 current_tarball_number, matches); 1600 1601 log_to_screen(tmp); 1601 paranoid_free(tmp);1602 mr_free(tmp); 1602 1603 } else { 1603 1604 filelist_subset_fname = NULL; 1604 1605 } 1605 paranoid_free(filelist_name);1606 mr_free(filelist_name); 1606 1607 1607 1608 if (filelist == NULL || matches > 0) { 1608 asprintf(&xattr_fname, XATTR_LIST_FNAME_RAW_SZ,1609 mr_asprintf(&xattr_fname, XATTR_LIST_FNAME_RAW_SZ, 1609 1610 MNT_CDROM "/archives", current_tarball_number); 1610 asprintf(&acl_fname, ACL_LIST_FNAME_RAW_SZ, MNT_CDROM "/archives",1611 mr_asprintf(&acl_fname, ACL_LIST_FNAME_RAW_SZ, MNT_CDROM "/archives", 1611 1612 current_tarball_number); 1612 1613 if (strstr(tarball_fname, ".bz2")) { 1613 asprintf(&executable, "bzip2");1614 mr_asprintf(&executable, "bzip2"); 1614 1615 } else if (strstr(tarball_fname, ".lzo")) { 1615 asprintf(&executable, "lzop");1616 mr_asprintf(&executable, "lzop"); 1616 1617 } else { 1617 1618 executable = NULL; … … 1619 1620 1620 1621 if (executable == NULL) { 1621 asprintf(&tmp, "which %s > /dev/null 2> /dev/null", executable);1622 mr_asprintf(&tmp, "which %s > /dev/null 2> /dev/null", executable); 1622 1623 if (run_program_and_log_output(tmp, FALSE)) { 1623 1624 log_to_screen … … 1626 1627 paranoid_MR_finish(1); 1627 1628 } 1628 paranoid_free(tmp);1629 1630 asprintf(&tmp, executable);1631 asprintf(&executable, "-P %s -Z", tmp);1632 paranoid_free(tmp);1629 mr_free(tmp); 1630 1631 mr_asprintf(&tmp, executable); 1632 mr_asprintf(&executable, "-P %s -Z", tmp); 1633 mr_free(tmp); 1633 1634 } 1634 1635 #ifdef __FreeBSD__ … … 1638 1639 #endif 1639 1640 1640 asprintf(&temp_log, "/tmp/%d.%d", (int) (random() % 32768),1641 mr_asprintf(&temp_log, "/tmp/%d.%d", (int) (random() % 32768), 1641 1642 (int) (random() % 32768)); 1642 1643 1643 1644 if (use_star) { 1644 1645 if (strstr(tarball_fname, ".bz2")) { 1645 asprintf(&tmp, " -bz");1646 mr_asprintf(&tmp, " -bz"); 1646 1647 } else { 1647 asprintf(&tmp, "%s", "");1648 } 1649 asprintf(&command,1648 mr_asprintf(&tmp, "%s", ""); 1649 } 1650 mr_asprintf(&command, 1650 1651 "star -x -force-remove -U " STAR_ACL_SZ 1651 1652 " errctl= file=%s %s 2>> %s >> %s", tarball_fname, tmp, temp_log, temp_log); 1652 paranoid_free(tmp);1653 mr_free(tmp); 1653 1654 } else { 1654 1655 if (filelist_subset_fname != NULL) { 1655 asprintf(&command,1656 mr_asprintf(&command, 1656 1657 "afio -i -M 8m -b %ld -c %ld %s -w '%s' %s 2>> %s >> %s", 1657 1658 TAPE_BLOCK_SIZE, … … 1660 1661 tarball_fname, temp_log, temp_log); 1661 1662 } else { 1662 asprintf(&command,1663 mr_asprintf(&command, 1663 1664 "afio -i -b %ld -c %ld -M 8m %s %s 2>> %s >> %s", 1664 1665 TAPE_BLOCK_SIZE, … … 1666 1667 } 1667 1668 } 1668 paranoid_free(executable);1669 mr_free(executable); 1669 1670 1670 1671 #undef BUFSIZE … … 1680 1681 } 1681 1682 } 1682 paranoid_free(command);1683 mr_free(command); 1683 1684 1684 1685 if (res && length_of_file(temp_log) < 5) { … … 1711 1712 } 1712 1713 if (retval) { 1713 asprintf(&command, "cat %s >> %s", temp_log, MONDO_LOGFILE);1714 mr_asprintf(&command, "cat %s >> %s", temp_log, MONDO_LOGFILE); 1714 1715 system(command); 1715 paranoid_free(command);1716 mr_free(command); 1716 1717 log_msg(2, "Errors occurred while processing fileset #%d", 1717 1718 current_tarball_number); … … 1720 1721 } 1721 1722 unlink(xattr_fname); 1722 paranoid_free(xattr_fname);1723 mr_free(xattr_fname); 1723 1724 } 1724 1725 if (does_file_exist("/PAUSE")) { … … 1731 1732 unlink(temp_log); 1732 1733 1733 paranoid_free(filelist_subset_fname);1734 paranoid_free(acl_fname);1735 paranoid_free(temp_log);1734 mr_free(filelist_subset_fname); 1735 mr_free(acl_fname); 1736 mr_free(temp_log); 1736 1737 1737 1738 log_msg(5, "Leaving"); … … 1785 1786 /* to do it with a file... */ 1786 1787 use_star = (strstr(tarball_fname, ".star")) ? TRUE : FALSE; 1787 asprintf(&tmp,1788 mr_asprintf(&tmp, 1788 1789 "Restoring from fileset #%ld (%ld KB) on %s #%d", 1789 1790 current_tarball_number, (long) size >> 10, … … 1791 1792 g_current_media_number); 1792 1793 log_msg(2, tmp); 1793 paranoid_free(tmp);1794 mr_free(tmp); 1794 1795 run_program_and_log_output("mkdir -p " MNT_RESTORING "/tmp", FALSE); 1795 1796 … … 1799 1800 * in afio or someting; oh darn.. OK, use tmpfs :-) * 1800 1801 ****************************************************************************/ 1801 asprintf(&afio_fname, "/tmp/tmpfs/archive.tmp.%ld",1802 mr_asprintf(&afio_fname, "/tmp/tmpfs/archive.tmp.%ld", 1802 1803 current_tarball_number); 1803 asprintf(&filelist_fname, "%s/filelist.%ld", bkpinfo->tmpdir,1804 mr_asprintf(&filelist_fname, "%s/filelist.%ld", bkpinfo->tmpdir, 1804 1805 current_tarball_number); 1805 asprintf(&filelist_subset_fname, "%s/filelist-subset-%ld.tmp",1806 mr_asprintf(&filelist_subset_fname, "%s/filelist-subset-%ld.tmp", 1806 1807 bkpinfo->tmpdir, current_tarball_number); 1807 1808 res = read_file_from_stream_to_file(bkpinfo, afio_fname, size); … … 1814 1815 if (bkpinfo->compression_level != 0) { 1815 1816 if (bkpinfo->use_star) { 1816 asprintf(&executable, " -bz");1817 mr_asprintf(&executable, " -bz"); 1817 1818 } else { 1818 asprintf(&executable, "-P %s -Z", bkpinfo->zip_exe);1819 mr_asprintf(&executable, "-P %s -Z", bkpinfo->zip_exe); 1819 1820 } 1820 1821 } … … 1827 1828 if (strstr(tarball_fname, ".star.")) { 1828 1829 use_star = TRUE; 1829 asprintf(&command, "star -t file=%s %s > %s 2>> %s", afio_fname, executable, filelist_fname, MONDO_LOGFILE);1830 mr_asprintf(&command, "star -t file=%s %s > %s 2>> %s", afio_fname, executable, filelist_fname, MONDO_LOGFILE); 1830 1831 } else { 1831 1832 use_star = FALSE; 1832 asprintf(&command, "afio -t -M 8m -b %ld %s %s > %s 2>> %s", TAPE_BLOCK_SIZE,1833 mr_asprintf(&command, "afio -t -M 8m -b %ld %s %s > %s 2>> %s", TAPE_BLOCK_SIZE, 1833 1834 executable, afio_fname, filelist_fname, MONDO_LOGFILE); 1834 1835 } … … 1837 1838 log_msg(4, "Warning - error occurred while retrieving TOC"); 1838 1839 } 1839 paranoid_free(command);1840 mr_free(command); 1840 1841 if ((matches = 1841 1842 save_filelist_entries_in_common(filelist_fname, filelist, … … 1847 1848 current_tarball_number); 1848 1849 } 1849 asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);1850 mr_asprintf(&tmp, "Skipping fileset %ld", current_tarball_number); 1850 1851 log_msg(2, tmp); 1851 paranoid_free(tmp);1852 mr_free(tmp); 1852 1853 restore_this_fileset = FALSE; 1853 1854 } else { … … 1859 1860 } 1860 1861 unlink(filelist_fname); 1861 paranoid_free(filelist_fname);1862 mr_free(filelist_fname); 1862 1863 1863 1864 // Concoct the call to star/afio to restore files … … 1865 1866 // star 1866 1867 if (filelist) { 1867 asprintf(&command, "star -x file=%s %s list=%s 2>> %s", afio_fname, executable,1868 mr_asprintf(&command, "star -x file=%s %s list=%s 2>> %s", afio_fname, executable, 1868 1869 filelist_subset_fname,MONDO_LOGFILE); 1869 1870 } else { 1870 asprintf(&command,"star -x file=%s %s 2>> %s", afio_fname, executable,MONDO_LOGFILE);1871 mr_asprintf(&command,"star -x file=%s %s 2>> %s", afio_fname, executable,MONDO_LOGFILE); 1871 1872 } 1872 1873 } else { 1873 1874 // afio 1874 1875 if (filelist) { 1875 asprintf(&command, "afio -i -M 8m -b %ld %s -w %s %s 2>> %s", TAPE_BLOCK_SIZE, executable, filelist_subset_fname,afio_fname,MONDO_LOGFILE);1876 mr_asprintf(&command, "afio -i -M 8m -b %ld %s -w %s %s 2>> %s", TAPE_BLOCK_SIZE, executable, filelist_subset_fname,afio_fname,MONDO_LOGFILE); 1876 1877 } else { 1877 asprintf(&command, "afio -i -M 8m -b %ld %s %s 2>> %s", TAPE_BLOCK_SIZE, executable,afio_fname,MONDO_LOGFILE);1878 } 1879 } 1880 paranoid_free(executable);1878 mr_asprintf(&command, "afio -i -M 8m -b %ld %s %s 2>> %s", TAPE_BLOCK_SIZE, executable,afio_fname,MONDO_LOGFILE); 1879 } 1880 } 1881 mr_free(executable); 1881 1882 1882 1883 // Call if IF there are files to restore (selectively/unconditionally) … … 1905 1906 log_msg(1, "NOT CALLING '%s'", command); 1906 1907 } 1907 paranoid_free(command);1908 mr_free(command); 1908 1909 1909 1910 if (does_file_exist("/PAUSE") && current_tarball_number >= 50) { … … 1915 1916 unlink(afio_fname); 1916 1917 1917 paranoid_free(filelist_subset_fname);1918 paranoid_free(afio_fname);1918 mr_free(filelist_subset_fname); 1919 mr_free(afio_fname); 1919 1920 return (retval); 1920 1921 } … … 1952 1953 assert(bkpinfo != NULL); 1953 1954 1954 asprintf(&biggies_whose_EXATs_we_should_set,1955 mr_asprintf(&biggies_whose_EXATs_we_should_set, 1955 1956 "%s/biggies-whose-EXATs-we-should-set", bkpinfo->tmpdir); 1956 1957 if (!(fbw = fopen(biggies_whose_EXATs_we_should_set, "w"))) { … … 1961 1962 read_cfg_var(g_mondo_cfg_file, "total-slices", tmp); 1962 1963 total_slices = atol(tmp); 1963 paranoid_free(tmp);1964 1965 asprintf(&tmp, _("Reassembling large files "));1964 mr_free(tmp); 1965 1966 mr_asprintf(&tmp, _("Reassembling large files ")); 1966 1967 mvaddstr_and_log_it(g_currentY, 0, tmp); 1967 paranoid_free(tmp);1968 mr_free(tmp); 1968 1969 1969 1970 if (length_of_file(BIGGIELIST) < 6) { … … 1977 1978 return (0); 1978 1979 } 1979 asprintf(&tmp, "OK, there are %ld biggiefiles in the archives",1980 mr_asprintf(&tmp, "OK, there are %ld biggiefiles in the archives", 1980 1981 noof_biggiefiles); 1981 1982 log_msg(2, tmp); 1982 paranoid_free(tmp);1983 mr_free(tmp); 1983 1984 1984 1985 open_progress_form(_("Reassembling large files"), … … 1998 1999 tmp1 = slice_fname(bigfileno + 1, 0, ARCHIVES_PATH, ""); 1999 2000 log_msg(3, "Slicename would have been %s", tmp1); 2000 paranoid_free(tmp1);2001 mr_free(tmp1); 2001 2002 2002 2003 // I'm not positive 'just_changed_cds' is even necessary... … … 2008 2009 insist_on_this_cd_number(bkpinfo, 2009 2010 ++g_current_media_number); 2010 asprintf(&tmp, _("Restoring from %s #%d"),2011 mr_asprintf(&tmp, _("Restoring from %s #%d"), 2011 2012 bkpinfo->backup_media_string, 2012 2013 g_current_media_number); 2013 2014 log_to_screen(tmp); 2014 paranoid_free(tmp);2015 mr_free(tmp); 2015 2016 2016 2017 just_changed_cds = TRUE; … … 2023 2024 } else { 2024 2025 just_changed_cds = FALSE; 2025 asprintf(&tmp, _("Restoring big file %ld"), bigfileno + 1);2026 mr_asprintf(&tmp, _("Restoring big file %ld"), bigfileno + 1); 2026 2027 update_progress_form(tmp); 2027 paranoid_free(tmp);2028 mr_free(tmp); 2028 2029 2029 2030 pathname_of_last_biggie_restored = … … 2033 2034 fprintf(fbw, "%s\n", pathname_of_last_biggie_restored); 2034 2035 } 2035 paranoid_free(pathname_of_last_biggie_restored);2036 mr_free(pathname_of_last_biggie_restored); 2036 2037 retval += res; 2037 2038 bigfileno++; 2038 2039 2039 2040 } 2040 paranoid_free(tmp);2041 mr_free(tmp); 2041 2042 } 2042 2043 2043 2044 if (fbw) { 2044 2045 fclose(fbw); 2045 asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, ARCHIVES_PATH);2046 asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, ARCHIVES_PATH);2046 mr_asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, ARCHIVES_PATH); 2047 mr_asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, ARCHIVES_PATH); 2047 2048 tmp = find_home_of_exe("setfacl"); 2048 2049 if (length_of_file(acl_fname) > 0 && tmp) { 2049 2050 set_acl_list(biggies_whose_EXATs_we_should_set, acl_fname); 2050 2051 } 2051 paranoid_free(tmp);2052 mr_free(tmp); 2052 2053 2053 2054 tmp = find_home_of_exe("setfattr"); … … 2055 2056 set_fattr_list(biggies_whose_EXATs_we_should_set, xattr_fname); 2056 2057 } 2057 paranoid_free(tmp);2058 paranoid_free(acl_fname);2059 paranoid_free(xattr_fname);2060 } 2061 paranoid_free(biggies_whose_EXATs_we_should_set);2058 mr_free(tmp); 2059 mr_free(acl_fname); 2060 mr_free(xattr_fname); 2061 } 2062 mr_free(biggies_whose_EXATs_we_should_set); 2062 2063 2063 2064 if (does_file_exist("/PAUSE")) { … … 2117 2118 read_cfg_var(g_mondo_cfg_file, "last-filelist-number", tmp); 2118 2119 max_val = atol(tmp) + 1; 2119 paranoid_free(tmp);2120 2121 asprintf(&progress_str, _("Restoring from %s #%d"),2120 mr_free(tmp); 2121 2122 mr_asprintf(&progress_str, _("Restoring from %s #%d"), 2122 2123 bkpinfo->backup_media_string, 2123 2124 g_current_media_number); … … 2131 2132 update_progress_form(progress_str); 2132 2133 2133 asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.bz2",2134 mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.bz2", 2134 2135 current_tarball_number); 2135 2136 if (!does_file_exist(tarball_fname)) { 2136 paranoid_free(tarball_fname);2137 asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.lzo",2137 mr_free(tarball_fname); 2138 mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.lzo", 2138 2139 current_tarball_number); 2139 2140 } 2140 2141 if (!does_file_exist(tarball_fname)) { 2141 paranoid_free(tarball_fname);2142 asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.",2142 mr_free(tarball_fname); 2143 mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.", 2143 2144 current_tarball_number); 2144 2145 } 2145 2146 if (!does_file_exist(tarball_fname)) { 2146 paranoid_free(tarball_fname);2147 asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.star.bz2",2147 mr_free(tarball_fname); 2148 mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.star.bz2", 2148 2149 current_tarball_number); 2149 2150 } 2150 2151 if (!does_file_exist(tarball_fname)) { 2151 paranoid_free(tarball_fname);2152 asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.star.",2152 mr_free(tarball_fname); 2153 mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.star.", 2153 2154 current_tarball_number); 2154 2155 } 2155 2156 if (!does_file_exist(tarball_fname)) { 2156 paranoid_free(tarball_fname);2157 mr_free(tarball_fname); 2157 2158 if (current_tarball_number == 0) { 2158 2159 log_to_screen … … 2168 2169 } 2169 2170 g_current_media_number++; 2170 paranoid_free(progress_str);2171 asprintf(&progress_str, _("Restoring from %s #%d"),2171 mr_free(progress_str); 2172 mr_asprintf(&progress_str, _("Restoring from %s #%d"), 2172 2173 bkpinfo->backup_media_string, 2173 2174 g_current_media_number); 2174 2175 log_to_screen(progress_str); 2175 2176 } else { 2176 paranoid_free(progress_str);2177 asprintf(&progress_str,2177 mr_free(progress_str); 2178 mr_asprintf(&progress_str, 2178 2179 _("Restoring from fileset #%ld on %s #%d"), 2179 2180 current_tarball_number, … … 2189 2190 } 2190 2191 if (res) { 2191 asprintf(&tmp1, _("reported errors"));2192 mr_asprintf(&tmp1, _("reported errors")); 2192 2193 } else { 2193 asprintf(&tmp1, _("succeeded"));2194 } 2195 asprintf(&tmp, _("%s #%d, fileset #%ld - restore %s"),2194 mr_asprintf(&tmp1, _("succeeded")); 2195 } 2196 mr_asprintf(&tmp, _("%s #%d, fileset #%ld - restore %s"), 2196 2197 bkpinfo->backup_media_string, 2197 2198 g_current_media_number, current_tarball_number,tmp1); 2198 paranoid_free(tmp1);2199 mr_free(tmp1); 2199 2200 2200 2201 if (attempts > 1) { 2201 asprintf(&tmp1, _(" (%d attempts) - review logs"), attempts);2202 } 2203 asprintf(&comment, "%s%s", tmp, tmp1);2204 paranoid_free(tmp);2205 paranoid_free(tmp1);2202 mr_asprintf(&tmp1, _(" (%d attempts) - review logs"), attempts); 2203 } 2204 mr_asprintf(&comment, "%s%s", tmp, tmp1); 2205 mr_free(tmp); 2206 mr_free(tmp1); 2206 2207 if (attempts > 1) { 2207 2208 log_to_screen(comment); 2208 2209 } 2209 paranoid_free(comment);2210 mr_free(comment); 2210 2211 2211 2212 retval += res; … … 2213 2214 g_current_progress++; 2214 2215 } 2215 paranoid_free(tarball_fname);2216 } 2217 paranoid_free(progress_str);2216 mr_free(tarball_fname); 2217 } 2218 mr_free(progress_str); 2218 2219 close_progress_form(); 2219 2220 … … 2265 2266 read_cfg_var(g_mondo_cfg_file, "total-slices", tmp); 2266 2267 total_slices = atol(tmp); 2267 paranoid_free(tmp);2268 2269 asprintf(&tmp, "Reassembling large files ");2270 asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir);2271 asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir);2268 mr_free(tmp); 2269 2270 mr_asprintf(&tmp, "Reassembling large files "); 2271 mr_asprintf(&xattr_fname, XATTR_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir); 2272 mr_asprintf(&acl_fname, ACL_BIGGLST_FNAME_RAW_SZ, bkpinfo->tmpdir); 2272 2273 mvaddstr_and_log_it(g_currentY, 0, tmp); 2273 paranoid_free(tmp);2274 2275 asprintf(&biggies_whose_EXATs_we_should_set,2274 mr_free(tmp); 2275 2276 mr_asprintf(&biggies_whose_EXATs_we_should_set, 2276 2277 "%s/biggies-whose-EXATs-we-should-set", bkpinfo->tmpdir); 2277 2278 if (!(fbw = fopen(biggies_whose_EXATs_we_should_set, "w"))) { … … 2290 2291 2291 2292 noof_biggiefiles = atol(biggie_fname); 2292 asprintf(&tmp, "OK, there are %ld biggiefiles in the archives",2293 mr_asprintf(&tmp, "OK, there are %ld biggiefiles in the archives", 2293 2294 noof_biggiefiles); 2294 2295 log_msg(2, tmp); 2295 paranoid_free(tmp);2296 mr_free(tmp); 2296 2297 2297 2298 open_progress_form(_("Reassembling large files"), … … 2319 2320 } 2320 2321 */ 2321 asprintf(&tmp, _("Restoring big file %ld (%lld K)"),2322 mr_asprintf(&tmp, _("Restoring big file %ld (%lld K)"), 2322 2323 current_bigfile_number + 1, biggie_size / 1024); 2323 2324 update_progress_form(tmp); 2324 paranoid_free(tmp);2325 mr_free(tmp); 2325 2326 2326 2327 pathname_of_last_biggie_restored = restore_a_biggiefile_from_stream(bkpinfo, biggie_fname, … … 2332 2333 fprintf(fbw, "%s\n", pathname_of_last_biggie_restored); 2333 2334 } 2334 paranoid_free(pathname_of_last_biggie_restored);2335 mr_free(pathname_of_last_biggie_restored); 2335 2336 2336 2337 retval += res; … … 2340 2341 if (current_bigfile_number != noof_biggiefiles 2341 2342 && noof_biggiefiles != 0) { 2342 asprintf(&tmp, "Warning - bigfileno=%ld but noof_biggiefiles=%ld\n",2343 mr_asprintf(&tmp, "Warning - bigfileno=%ld but noof_biggiefiles=%ld\n", 2343 2344 current_bigfile_number, noof_biggiefiles); 2344 2345 } else { 2345 asprintf(&tmp,2346 mr_asprintf(&tmp, 2346 2347 "%ld biggiefiles in biggielist.txt; %ld biggiefiles processed today.", 2347 2348 noof_biggiefiles, current_bigfile_number); 2348 2349 } 2349 2350 log_msg(1, tmp); 2350 paranoid_free(tmp);2351 mr_free(tmp); 2351 2352 2352 2353 if (fbw) { … … 2370 2371 } 2371 2372 } 2372 paranoid_free(xattr_fname);2373 paranoid_free(acl_fname);2374 paranoid_free(biggies_whose_EXATs_we_should_set);2373 mr_free(xattr_fname); 2374 mr_free(acl_fname); 2375 mr_free(biggies_whose_EXATs_we_should_set); 2375 2376 2376 2377 if (does_file_exist("/PAUSE")) { … … 2386 2387 mvaddstr_and_log_it(g_currentY++, 74, _("Done.")); 2387 2388 } 2388 paranoid_free(biggie_fname);2389 mr_free(biggie_fname); 2389 2390 return (retval); 2390 2391 } … … 2428 2429 read_cfg_var(g_mondo_cfg_file, "last-filelist-number", tmp); 2429 2430 max_val = atol(tmp) + 1; 2430 paranoid_free(tmp);2431 mr_free(tmp); 2431 2432 2432 2433 chdir(bkpinfo->restore_path); /* I don't know why this is needed _here_ but it seems to be. -HR, 02/04/2002 */ … … 2434 2435 run_program_and_log_output("pwd", 5); 2435 2436 2436 asprintf(&progress_str, _("Restoring from media #%d"),2437 mr_asprintf(&progress_str, _("Restoring from media #%d"), 2437 2438 g_current_media_number); 2438 2439 log_to_screen(progress_str); … … 2456 2457 while (ctrl_chr != BLK_STOP_AFIOBALLS) { 2457 2458 update_progress_form(progress_str); 2458 asprintf(&xattr_fname, "%s/xattr-subset-%ld.tmp", bkpinfo->tmpdir,2459 mr_asprintf(&xattr_fname, "%s/xattr-subset-%ld.tmp", bkpinfo->tmpdir, 2459 2460 current_afioball_number); 2460 asprintf(&acl_fname, "%s/acl-subset-%ld.tmp", bkpinfo->tmpdir,2461 mr_asprintf(&acl_fname, "%s/acl-subset-%ld.tmp", bkpinfo->tmpdir, 2461 2462 current_afioball_number); 2462 2463 unlink(xattr_fname); … … 2473 2474 } 2474 2475 /* BERLIOS: useless ? 2475 asprintf(&tmp,2476 mr_asprintf(&tmp, 2476 2477 _("Restoring from fileset #%ld (name=%s, size=%ld K)"), 2477 2478 current_afioball_number, tmp_fname, (long) tmp_size >> 10); … … 2484 2485 retval += res; 2485 2486 if (res) { 2486 asprintf(&tmp, _("Fileset %ld - errors occurred"),2487 mr_asprintf(&tmp, _("Fileset %ld - errors occurred"), 2487 2488 current_afioball_number); 2488 2489 log_to_screen(tmp); 2489 paranoid_free(tmp);2490 mr_free(tmp); 2490 2491 } 2491 2492 res = … … 2498 2499 g_current_progress++; 2499 2500 2500 paranoid_free(progress_str);2501 asprintf(&progress_str, _("Restoring from fileset #%ld on %s #%d"),2501 mr_free(progress_str); 2502 mr_asprintf(&progress_str, _("Restoring from fileset #%ld on %s #%d"), 2502 2503 current_afioball_number, 2503 2504 bkpinfo->backup_media_string, … … 2507 2508 unlink(xattr_fname); 2508 2509 unlink(acl_fname); 2509 paranoid_free(xattr_fname);2510 paranoid_free(acl_fname);2510 mr_free(xattr_fname); 2511 mr_free(acl_fname); 2511 2512 } // next 2512 paranoid_free(progress_str);2513 paranoid_free(tmp_fname);2513 mr_free(progress_str); 2514 mr_free(tmp_fname); 2514 2515 2515 2516 log_msg(1, "All done with afioballs"); … … 2555 2556 /* BERLIOS: should test return value, or better change the function */ 2556 2557 getcwd(cwd, MAX_STR_LEN - 1); 2557 asprintf(&tmp, "mkdir -p %s", bkpinfo->restore_path);2558 mr_asprintf(&tmp, "mkdir -p %s", bkpinfo->restore_path); 2558 2559 run_program_and_log_output(tmp, FALSE); 2559 paranoid_free(tmp);2560 mr_free(tmp); 2560 2561 2561 2562 log_msg(1, "Changing dir to %s", bkpinfo->restore_path); … … 2572 2573 newtRefresh(); 2573 2574 } 2574 paranoid_free(tmp);2575 mr_free(tmp); 2575 2576 2576 2577 mvaddstr_and_log_it(g_currentY, 0, … … 2613 2614 kill_petris(); 2614 2615 log_msg(2, "restore_everything() --- leaving"); 2615 paranoid_free(cwd);2616 paranoid_free(newpath);2616 mr_free(cwd); 2617 mr_free(newpath); 2617 2618 return (resA + resB); 2618 2619 } … … 2715 2716 g_text_mode = FALSE; 2716 2717 } // newt :-) 2717 paranoid_free(tmp);2718 mr_free(tmp); 2718 2719 2719 2720 if (! … … 2732 2733 2733 2734 g_mondo_home = call_program_and_get_last_line_of_output("which mondorestore"); 2734 paranoid_alloc(g_tmpfs_mountpt, "/tmp/tmpfs");2735 mr_allocstr(g_tmpfs_mountpt, "/tmp/tmpfs"); 2735 2736 make_hole_for_dir(g_tmpfs_mountpt); 2736 2737 g_current_media_number = 1; // precaution … … 2757 2758 2758 2759 /* Backup original mountlist.txt */ 2759 asprintf(&tmp, "%s.orig", g_mountlist_fname);2760 mr_asprintf(&tmp, "%s.orig", g_mountlist_fname); 2760 2761 if (!does_file_exist(g_mountlist_fname)) { 2761 2762 log_msg(2, … … 2763 2764 __LINE__, g_mountlist_fname); 2764 2765 } else if (!does_file_exist(tmp)) { 2765 paranoid_free(tmp);2766 asprintf(&tmp, "cp -f %s %s.orig", g_mountlist_fname,2766 mr_free(tmp); 2767 mr_asprintf(&tmp, "cp -f %s %s.orig", g_mountlist_fname, 2767 2768 g_mountlist_fname); 2768 2769 run_program_and_log_output(tmp, FALSE); 2769 2770 } 2770 paranoid_free(tmp);2771 mr_free(tmp); 2771 2772 2772 2773 /* Init directories */ 2773 2774 make_hole_for_dir(bkpinfo->tmpdir); 2774 asprintf(&tmp, "mkdir -p %s", bkpinfo->tmpdir);2775 mr_asprintf(&tmp, "mkdir -p %s", bkpinfo->tmpdir); 2775 2776 run_program_and_log_output(tmp, FALSE); 2776 paranoid_free(tmp);2777 mr_free(tmp); 2777 2778 2778 2779 make_hole_for_dir("/var/log"); … … 2805 2806 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2806 2807 if (!does_file_exist(g_mountlist_fname)) { 2807 paranoid_alloc(g_mountlist_fname, "/tmp/mountlist.txt");2808 mr_allocstr(g_mountlist_fname, "/tmp/mountlist.txt"); 2808 2809 } 2809 2810 res = let_user_edit_the_mountlist(bkpinfo, mountlist, raidlist); … … 2832 2833 bkpinfo->compression_level = 1; 2833 2834 g_current_media_number = 2; 2834 paranoid_alloc(bkpinfo->restore_path, "/tmp/TESTING");2835 mr_allocstr(bkpinfo->restore_path, "/tmp/TESTING"); 2835 2836 bkpinfo->backup_media_type = dvd; 2836 paranoid_free(bkpinfo->backup_media_string);2837 mr_free(bkpinfo->backup_media_string); 2837 2838 bkpinfo->backup_media_string = bkptype_to_string(bkpinfo->backup_media_type); 2838 2839 open_progress_form(_("Reassembling /dev/hda1"), … … 2859 2860 // finish(0); 2860 2861 // toggle_path_selection (filelist, "/root/stuff", TRUE); 2861 asprintf(&a, argv[3]);2862 asprintf(&b, argv[4]);2862 mr_asprintf(&a, argv[3]); 2863 mr_asprintf(&b, argv[4]); 2863 2864 2864 2865 res = save_filelist_entries_in_common(a, filelist, b, FALSE); 2865 2866 free_filelist(filelist); 2866 paranoid_free(a);2867 paranoid_free(b);2867 mr_free(a); 2868 mr_free(b); 2868 2869 printf("res = %d", res); 2869 2870 finish(0); … … 2944 2945 log_msg(2, "Still here. Yay."); 2945 2946 if (strlen(bkpinfo->tmpdir) > 0) { 2946 asprintf(&tmp, "rm -Rf %s/*", bkpinfo->tmpdir);2947 mr_asprintf(&tmp, "rm -Rf %s/*", bkpinfo->tmpdir); 2947 2948 run_program_and_log_output(tmp, FALSE); 2948 paranoid_free(tmp);2949 mr_free(tmp); 2949 2950 } 2950 2951 unmount_boot_if_necessary(); /* for Gentoo users */ … … 2960 2961 2961 2962 iamhere("About to call load_mountlist and load_raidtab"); 2962 paranoid_alloc(bkpinfo->restore_path, MNT_RESTORING);2963 mr_allocstr(bkpinfo->restore_path, MNT_RESTORING); 2963 2964 read_cfg_file_into_bkpinfo(g_mondo_cfg_file, bkpinfo); 2964 2965 retval = load_mountlist(mountlist, g_mountlist_fname); … … 2973 2974 && !is_this_device_mounted(bkpinfo->nfs_mount)) { 2974 2975 log_msg(1, "Mounting nfs dir"); 2975 paranoid_alloc(bkpinfo->isodir, "/tmp/isodir");2976 mr_allocstr(bkpinfo->isodir, "/tmp/isodir"); 2976 2977 run_program_and_log_output("mkdir -p /tmp/isodir", 5); 2977 asprintf(&tmp, "mount %s -t nfs -o nolock /tmp/isodir",2978 mr_asprintf(&tmp, "mount %s -t nfs -o nolock /tmp/isodir", 2978 2979 bkpinfo->nfs_mount); 2979 2980 run_program_and_log_output(tmp, 1); 2980 paranoid_free(tmp);2981 mr_free(tmp); 2981 2982 } 2982 2983 } … … 2995 2996 log_msg(0, "Partitioning only."); 2996 2997 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 2997 paranoid_alloc(g_mountlist_fname, "/tmp/mountlist.txt");2998 mr_allocstr(g_mountlist_fname, "/tmp/mountlist.txt"); 2998 2999 load_mountlist(mountlist, g_mountlist_fname); 2999 3000 res = partition_everything(mountlist); … … 3004 3005 log_msg(0, "Formatting only."); 3005 3006 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 3006 paranoid_alloc(g_mountlist_fname, "/tmp/mountlist.txt");3007 mr_allocstr(g_mountlist_fname, "/tmp/mountlist.txt"); 3007 3008 load_mountlist(mountlist, g_mountlist_fname); 3008 3009 res = format_everything(mountlist, FALSE, raidlist); … … 3013 3014 log_msg(0, "Stopping LVM and RAID"); 3014 3015 load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME); 3015 paranoid_alloc(g_mountlist_fname, "/tmp/mountlist.txt");3016 mr_allocstr(g_mountlist_fname, "/tmp/mountlist.txt"); 3016 3017 load_mountlist(mountlist, g_mountlist_fname); 3017 3018 res = do_my_funky_lvm_stuff(TRUE, FALSE); … … 3139 3140 unlink("/tmp/mondo-run-prog.tmp"); 3140 3141 set_signals(FALSE); 3141 asprintf(&tmp, "rm -Rf %s", bkpinfo->tmpdir);3142 mr_asprintf(&tmp, "rm -Rf %s", bkpinfo->tmpdir); 3142 3143 run_program_and_log_output(tmp, FALSE); 3143 paranoid_free(tmp);3144 mr_free(tmp); 3144 3145 3145 3146 log_to_screen 3146 3147 (_ 3147 3148 ("Restore log copied to /tmp/mondo-restore.log on your hard disk")); 3148 asprintf(&tmp,3149 mr_asprintf(&tmp, 3149 3150 _ 3150 3151 ("Mondo-restore is exiting (retval=%d) "), 3151 3152 retval); 3152 3153 log_to_screen(tmp); 3153 paranoid_free(tmp);3154 3155 asprintf(&tmp, "umount %s", bkpinfo->isodir);3154 mr_free(tmp); 3155 3156 mr_asprintf(&tmp, "umount %s", bkpinfo->isodir); 3156 3157 run_program_and_log_output(tmp, 5); 3157 paranoid_free(tmp);3158 3159 paranoid_free(mountlist);3160 paranoid_free(raidlist);3158 mr_free(tmp); 3159 3160 mr_free(mountlist); 3161 mr_free(raidlist); 3161 3162 if (am_I_in_disaster_recovery_mode()) { 3162 3163 run_program_and_log_output("mount / -o remount,rw", 2);
Note:
See TracChangeset
for help on using the changeset viewer.