Changeset 2267 in MondoRescue for branches/2.2.10/mondo/src/common
- Timestamp:
- Jul 12, 2009, 2:04:49 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2.10/mondo/src/common/libmondo-archive.c
r2247 r2267 405 405 { 406 406 int retval = 0, res = 0; 407 char *tmp ;407 char *tmp = NULL; 408 408 409 409 assert(bkpinfo != NULL); 410 410 set_g_cdrom_and_g_dvd_to_bkpinfo_value(); 411 malloc_string(tmp);412 411 if (bkpinfo->backup_media_type == dvd) { 413 412 #ifdef DVDRWFORMAT … … 430 429 } 431 430 432 /* 433 sprintf(tmp, "wc -l %s/archives/filelist.full > %s/archives/filelist.count",bkpinfo->scratchdir, bkpinfo->scratchdir); 434 if (run_program_and_log_output(tmp, 2)) 435 { fatal_error("Failed to count filelist.full"); } 436 */ 437 sprintf(tmp, "gzip -9 %s/archives/filelist.full", bkpinfo->scratchdir); 431 mr_asprintf(&tmp, "gzip -9 %s/archives/filelist.full", bkpinfo->scratchdir); 438 432 if (run_program_and_log_output(tmp, 2)) { 433 mr_free(tmp); 439 434 fatal_error("Failed to gzip filelist.full"); 440 435 } 441 sprintf(tmp, "cp -f %s/archives/*list*.gz %s", bkpinfo->scratchdir, 436 mr_free(tmp); 437 438 mr_asprintf(&tmp, "cp -f %s/archives/*list*.gz %s", bkpinfo->scratchdir, 442 439 bkpinfo->tmpdir); 443 440 if (run_program_and_log_output(tmp, 2)) { 441 mr_free(tmp); 444 442 fatal_error("Failed to copy to tmpdir"); 445 443 } 444 mr_free(tmp); 446 445 447 446 copy_mondo_and_mindi_stuff_to_scratchdir(); // payload, too, if it exists … … 463 462 } 464 463 retval += do_that_initial_phase(); // prepare 465 sprintf(tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir);464 mr_asprintf(&tmp, "rm -f %s/images/*.iso", bkpinfo->scratchdir); 466 465 run_program_and_log_output(tmp, 1); 466 mr_free(tmp); 467 467 468 retval += make_those_afios_phase(); // backup regular files 468 469 retval += make_those_slices_phase(); // backup BIG files … … 472 473 sleep(2); 473 474 } 474 paranoid_free(tmp);475 475 return (retval); 476 476 } … … 1015 1015 char *archiving_afioball_fname; 1016 1016 char *curr_xattr_list_fname = NULL; 1017 char *curr_acl_list_fname ;1017 char *curr_acl_list_fname = NULL; 1018 1018 1019 1019 struct s_bkpinfo *bkpinfo_bis; 1020 char *tmp ;1020 char *tmp = NULL; 1021 1021 int res = 0, retval = 0; 1022 1022 int *p_archival_threads_running; … … 1026 1026 int this_thread_no = g_current_thread_no++; 1027 1027 1028 malloc_string(curr_xattr_list_fname);1029 malloc_string(curr_acl_list_fname);1030 1028 malloc_string(archiving_filelist_fname); 1031 1029 malloc_string(archiving_afioball_fname); 1032 malloc_string(tmp);1033 1030 p_last_set_archived = (int *) inbuf; 1034 1031 p_archival_threads_running = (int *) (inbuf + 4); … … 1074 1071 } 1075 1072 1076 sprintf(tmp, AFIOBALL_FNAME_RAW_SZ, bkpinfo->tmpdir,1073 mr_asprintf(&tmp, AFIOBALL_FNAME_RAW_SZ, bkpinfo->tmpdir, 1077 1074 archiving_set_no - ARCH_BUFFER_NUM, bkpinfo->zip_suffix); 1078 1075 if (does_file_exist(tmp)) { … … 1084 1081 log_msg(4, "[%d] - continuing", getpid()); 1085 1082 } 1083 mr_free(tmp); 1086 1084 1087 1085 log_msg(4, "%s[%d:%d] - EXATing %d...", FORTY_SPACES, getpid(), 1088 1086 this_thread_no, archiving_set_no); 1089 1087 if (g_getfattr) { 1090 sprintf(curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,1088 mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ, 1091 1089 bkpinfo->tmpdir, archiving_set_no); 1092 1090 get_fattr_list(archiving_filelist_fname, curr_xattr_list_fname); 1091 mr_free(curr_xattr_list_fname); 1093 1092 } 1094 1093 if (g_getfacl) { 1095 sprintf(curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,1094 mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ, 1096 1095 bkpinfo->tmpdir, archiving_set_no); 1097 1096 get_acl_list(archiving_filelist_fname, curr_acl_list_fname); 1097 mr_free(curr_acl_list_fname); 1098 1098 } 1099 1099 … … 1107 1107 1108 1108 if (res) { 1109 sprintf(tmp,1109 mr_asprintf(&tmp, 1110 1110 "Errors occurred while archiving set %ld. Please review logs.", 1111 1111 archiving_set_no); 1112 1112 log_to_screen(tmp); 1113 mr_free(tmp); 1113 1114 } 1114 1115 if (!semaphore_p()) { … … 1140 1141 paranoid_free(archiving_filelist_fname); 1141 1142 paranoid_free(archiving_afioball_fname); 1142 paranoid_free(curr_xattr_list_fname);1143 paranoid_free(curr_acl_list_fname);1144 paranoid_free(tmp);1145 1143 pthread_exit(NULL); 1146 1144 } … … 1224 1222 1225 1223 /*@ buffers *********************************** */ 1226 char *command, *tmpfile, *data_disks_file; 1224 char *command = NULL; 1225 char *tmpfile = NULL; 1226 char *data_disks_file = NULL; 1227 1227 1228 1228 assert(bkpinfo != NULL); 1229 malloc_string(command); 1230 malloc_string(tmpfile); 1231 malloc_string(data_disks_file); 1232 sprintf(data_disks_file, "%s/all.tar.gz", bkpinfo->tmpdir); 1229 mr_asprintf(&data_disks_file, "%s/all.tar.gz", bkpinfo->tmpdir); 1233 1230 1234 1231 snprintf(g_serial_string, MAX_STR_LEN - 8, "%s", … … 1241 1238 assert(strlen(g_serial_string) < MAX_STR_LEN); 1242 1239 1243 sprintf(tmpfile, "%s/archives/SERIAL-STRING", bkpinfo->scratchdir);1240 mr_asprintf(&tmpfile, "%s/archives/SERIAL-STRING", bkpinfo->scratchdir); 1244 1241 if (write_one_liner_data_file(tmpfile, g_serial_string)) { 1245 1242 log_msg(1, "%ld: Failed to write serial string", __LINE__); 1246 1243 } 1244 mr_free(tmpfile); 1247 1245 1248 1246 mvaddstr_and_log_it(g_currentY, 0, "Preparing to archive your data"); … … 1265 1263 } 1266 1264 } 1267 1268 sprintf(command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir, 1269 1265 mr_free(data_disks_file); 1266 1267 mr_asprintf(&command, "rm -f %s/%s/%s-[1-9]*.iso", bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix); 1270 1268 paranoid_system(command); 1269 mr_free(command); 1270 1271 1271 wipe_archives(bkpinfo->scratchdir); 1272 1272 mvaddstr_and_log_it(g_currentY++, 74, "Done."); … … 1277 1277 BLK_START_OF_BACKUP); 1278 1278 } 1279 paranoid_free(command);1280 paranoid_free(tmpfile);1281 paranoid_free(data_disks_file);1282 1279 return (retval); 1283 1280 } … … 1352 1349 1353 1350 /*@ buffers ********************************************** */ 1354 char *storing_filelist_fname ;1355 char *storing_afioball_fname ;1351 char *storing_filelist_fname = NULL; 1352 char *storing_afioball_fname = NULL; 1356 1353 char *tmp = NULL; 1357 1354 char *media_usage_comment = NULL; … … 1370 1367 assert(bkpinfo != NULL); 1371 1368 malloc_string(result_str); 1372 malloc_string(curr_xattr_list_fname);1373 malloc_string(curr_acl_list_fname);1374 malloc_string(storing_filelist_fname);1375 malloc_string(storing_afioball_fname);1376 1369 transfer_block = 1377 1370 malloc(sizeof(struct s_bkpinfo) + BKPINFO_LOC_OFFSET + 64); … … 1442 1435 */ 1443 1436 sleep(1); 1444 } else 1437 } else { 1445 1438 // store set N 1446 { 1447 sprintf(storing_filelist_fname, FILELIST_FNAME_RAW_SZ, 1439 mr_asprintf(&storing_filelist_fname, FILELIST_FNAME_RAW_SZ, 1448 1440 bkpinfo->tmpdir, storing_set_no); 1449 sprintf(storing_afioball_fname, AFIOBALL_FNAME_RAW_SZ,1441 mr_asprintf(&storing_afioball_fname, AFIOBALL_FNAME_RAW_SZ, 1450 1442 bkpinfo->tmpdir, storing_set_no, bkpinfo->zip_suffix); 1451 1443 if (g_getfattr) { 1452 sprintf(curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ,1444 mr_asprintf(&curr_xattr_list_fname, XATTR_LIST_FNAME_RAW_SZ, 1453 1445 bkpinfo->tmpdir, storing_set_no); 1454 1446 } 1455 1447 if (g_getfacl) { 1456 sprintf(curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ,1448 mr_asprintf(&curr_acl_list_fname, ACL_LIST_FNAME_RAW_SZ, 1457 1449 bkpinfo->tmpdir, storing_set_no); 1458 1450 } … … 1519 1511 storing_set_no++; 1520 1512 // sleep(2); 1513 if (g_getfacl) { 1514 mr_free(curr_acl_list_fname); 1515 } 1516 if (g_getfattr) { 1517 mr_free(curr_xattr_list_fname); 1518 } 1519 mr_free(storing_filelist_fname); 1520 mr_free(storing_afioball_fname); 1521 1521 } 1522 1522 } … … 1541 1541 paranoid_free(transfer_block); 1542 1542 paranoid_free(result_str); 1543 paranoid_free(storing_filelist_fname);1544 paranoid_free(storing_afioball_fname);1545 paranoid_free(curr_xattr_list_fname);1546 paranoid_free(curr_acl_list_fname);1547 1543 return (retval); 1548 1544 } … … 1682 1678 1683 1679 /*@ buffers ****************************************** */ 1684 char *tmp ;1680 char *tmp = NULL; 1685 1681 char *old_pwd; 1686 1682 char *result_sz = NULL; … … 1688 1684 char *sz_blank_disk = NULL; 1689 1685 char *fnam; 1690 char *tmp2 ;1691 char *tmp3 ;1686 char *tmp2 = NULL; 1687 char *tmp3 = NULL; 1692 1688 char *mds = NULL; 1693 1689 bool cd_is_mountable; … … 1695 1691 malloc_string(old_pwd); 1696 1692 malloc_string(fnam); 1697 tmp = malloc(1200);1698 tmp2 = malloc(1200);1699 tmp3 = malloc(1200);1700 1693 assert(bkpinfo != NULL); 1701 1694 assert_string_is_neither_NULL_nor_zerolength(destfile); 1702 1695 1703 sprintf(tmp, "%s/isolinux.bin", bkpinfo->scratchdir);1704 sprintf(tmp2, "%s/isolinux.bin", bkpinfo->tmpdir);1696 mr_asprintf(&tmp, "%s/isolinux.bin", bkpinfo->scratchdir); 1697 mr_asprintf(&tmp2, "%s/isolinux.bin", bkpinfo->tmpdir); 1705 1698 if (does_file_exist(tmp)) { 1706 sprintf(tmp3, "cp -f %s %s", tmp, tmp2);1699 mr_asprintf(&tmp3, "cp -f %s %s", tmp, tmp2); 1707 1700 paranoid_system(tmp3); 1701 mr_free(tmp3); 1708 1702 } 1709 1703 if (!does_file_exist(tmp) && does_file_exist(tmp2)) { 1710 sprintf(tmp3, "cp -f %s %s", tmp2, tmp);1704 mr_asprintf(&tmp3, "cp -f %s %s", tmp2, tmp); 1711 1705 paranoid_system(tmp3); 1712 }1713 free(tmp2);1714 free(tmp3);1715 tmp2 = NULL;1716 tmp3 = NULL; 1706 mr_free(tmp3); 1707 } 1708 mr_free(tmp2); 1709 mr_free(tmp); 1710 1717 1711 if (bkpinfo->backup_media_type == iso && bkpinfo->manual_cd_tray) { 1718 1712 popup_and_OK("Please insert new media and press Enter."); … … 1722 1716 bkpinfo->scratchdir, destfile); 1723 1717 (void) getcwd(old_pwd, MAX_STR_LEN - 1); 1724 sprintf(tmp, "chmod 744 %s", bkpinfo->scratchdir);1718 mr_asprintf(&tmp, "chmod 744 %s", bkpinfo->scratchdir); 1725 1719 run_program_and_log_output(tmp, FALSE); 1720 mr_free(tmp); 1721 1726 1722 chdir(bkpinfo->scratchdir); 1727 1723 … … 1746 1742 if (bkpinfo->call_make_iso[0] != '\0') { 1747 1743 log_msg(2, "bkpinfo->call_make_iso = %s", bkpinfo->call_make_iso); 1748 sprintf(tmp, "%s/archives/NOT-THE-LAST", bkpinfo->scratchdir);1749 1744 mds = media_descriptor_string(bkpinfo->backup_media_type); 1750 1745 mr_asprintf(&message_to_screen, "Making an ISO (%s #%d)", mds, g_current_media_number); … … 1765 1760 } else { 1766 1761 log_to_screen("%s...OK", message_to_screen); 1767 sprintf(tmp, "tail -n10 %s | grep -F ':-('", MONDO_LOGFILE);1762 mr_asprintf(&tmp, "tail -n10 %s | grep -F ':-('", MONDO_LOGFILE); 1768 1763 if (!run_program_and_log_output(tmp, 1)) { 1769 1764 log_to_screen 1770 1765 ("Despite nonfatal errors, growisofs confirms the write was successful."); 1771 1766 } 1767 mr_free(tmp); 1772 1768 } 1773 1769 retval += res; 1774 1770 #ifdef DVDRWFORMAT 1775 sprintf(tmp,1771 mr_asprintf(&tmp, 1776 1772 "tail -n8 %s | grep 'blank=full.*dvd-compat.*DAO'", 1777 1773 MONDO_LOGFILE); … … 1838 1834 } 1839 1835 } 1836 mr_free(tmp); 1840 1837 #endif 1841 1838 if (g_backup_media_type == dvd && !bkpinfo->please_dont_eject) { … … 1918 1915 "Warning - %s mounted. I'm unmounting it before I burn to it.", 1919 1916 bkpinfo->media_device); 1920 sprintf(tmp, "umount %s", bkpinfo->media_device);1917 mr_asprintf(&tmp, "umount %s", bkpinfo->media_device); 1921 1918 run_program_and_log_output(tmp, FALSE); 1919 mr_free(tmp); 1922 1920 } 1923 1921 } … … 1969 1967 paranoid_free(old_pwd); 1970 1968 paranoid_free(fnam); 1971 paranoid_free(tmp);1972 1969 return (retval); 1973 1970 } … … 3325 3322 /*@ buffers ***************************************************** */ 3326 3323 char *tmp; 3327 char *cdno_fname; 3328 char *lastcd_fname; 3329 char *isofile; 3324 char *tmp1; 3325 char *cdno_fname = NULL; 3326 char *lastcd_fname = NULL; 3327 char *isofile = NULL; 3330 3328 char *mds = NULL; 3331 3329 … … 3338 3336 3339 3337 malloc_string(tmp); 3340 malloc_string(cdno_fname);3341 malloc_string(lastcd_fname);3342 malloc_string(isofile);3343 3338 3344 3339 assert(bkpinfo != NULL); … … 3354 3349 /* label the ISO with its number */ 3355 3350 3356 sprintf(cdno_fname, "%s/archives/THIS-CD-NUMBER", bkpinfo->scratchdir);3351 mr_asprintf(&cdno_fname, "%s/archives/THIS-CD-NUMBER", bkpinfo->scratchdir); 3357 3352 fout = fopen(cdno_fname, "w"); 3353 mr_free(cdno_fname); 3354 3358 3355 fprintf(fout, "%d", g_current_media_number); 3359 3356 paranoid_fclose(fout); 3360 3357 3361 sprintf(tmp, "cp -f %s/autorun %s/", g_mondo_home,3358 mr_asprintf(&tmp1, "cp -f %s/autorun %s/", g_mondo_home, 3362 3359 bkpinfo->scratchdir); 3363 if (run_program_and_log_output(tmp , FALSE)) {3360 if (run_program_and_log_output(tmp1, FALSE)) { 3364 3361 log_msg(2, "Warning - unable to copy autorun to scratchdir"); 3365 3362 } 3363 mr_free(tmp1); 3366 3364 3367 3365 /* last CD or not? Label accordingly */ 3368 sprintf(lastcd_fname, "%s/archives/NOT-THE-LAST", bkpinfo->scratchdir);3366 mr_asprintf(&lastcd_fname, "%s/archives/NOT-THE-LAST", bkpinfo->scratchdir); 3369 3367 if (last_cd) { 3370 3368 unlink(lastcd_fname); … … 3377 3375 paranoid_fclose(fout); 3378 3376 } 3377 mr_free(lastcd_fname); 3378 3379 3379 if (space_occupied_by_cd(bkpinfo->scratchdir) / 1024 > 3380 3380 bkpinfo->media_size[g_current_media_number]) { 3381 sprintf(tmp,3381 mr_asprintf(&tmp1, 3382 3382 "Warning! CD is too big. It occupies %ld KB, which is more than the %ld KB allowed.", 3383 3383 (long) space_occupied_by_cd(bkpinfo->scratchdir), 3384 3384 (long) bkpinfo->media_size[g_current_media_number]); 3385 log_to_screen(tmp); 3386 } 3387 sprintf(isofile, "%s/%s/%s-%d.iso", bkpinfo->isodir, 3385 log_to_screen(tmp1); 3386 mr_free(tmp1); 3387 } 3388 mr_asprintf(&isofile, "%s/%s/%s-%d.iso", bkpinfo->isodir, 3388 3389 bkpinfo->nfs_remote_dir, bkpinfo->prefix, 3389 3390 g_current_media_number); … … 3424 3425 } else { 3425 3426 mds = media_descriptor_string(bkpinfo->backup_media_type); 3426 sprintf(tmp, "Failed to create %s #%d. Retry?", mds, g_current_media_number);3427 mr_asprintf(&tmp1, "Failed to create %s #%d. Retry?", mds, g_current_media_number); 3427 3428 mr_free(mds); 3428 3429 res = ask_me_yes_or_no(tmp); 3430 mr_free(tmp1); 3431 3429 3432 if (!res) { 3430 3433 if (ask_me_yes_or_no("Abort the backup?")) { … … 3439 3442 } 3440 3443 } 3444 mr_free(isofile); 3445 3441 3446 g_current_media_number++; 3442 3447 if (g_current_media_number > MAX_NOOF_MEDIA) { … … 3444 3449 } 3445 3450 wipe_archives(bkpinfo->scratchdir); 3446 sprintf(tmp, "rm -Rf %s/images/*gz %s/images/*data*img",3451 mr_asprintf(&tmp1, "rm -Rf %s/images/*gz %s/images/*data*img", 3447 3452 bkpinfo->scratchdir, bkpinfo->scratchdir); 3448 if (system(tmp )) {3453 if (system(tmp1)) { 3449 3454 log_msg 3450 3455 (2, 3451 3456 "Error occurred when I tried to delete the redundant IMGs and GZs"); 3452 3457 } 3458 mr_free(tmp1); 3453 3459 3454 3460 if (last_cd) { … … 3459 3465 3460 3466 bkpinfo->verify_data = orig_vfy_flag_val; 3461 paranoid_free(tmp);3462 paranoid_free(cdno_fname);3463 paranoid_free(lastcd_fname);3464 paranoid_free(isofile);3465 3467 return (0); 3466 3468 }
Note:
See TracChangeset
for help on using the changeset viewer.