Changeset 3613 in MondoRescue


Ignore:
Timestamp:
Nov 18, 2016, 5:31:42 PM (7 years ago)
Author:
Bruno Cornec
Message:

Add function mr_getcwd and use it to allow use o dynamically allocated memory
instead of getcwd

Location:
branches/3.2/mondo/src
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/3.2/mondo/src/common/libmondo-archive.c

    r3610 r3613  
    1515#include "mr_str.h"
    1616#include "mr_sys.h"
     17#include "mr_file.h"
    1718#include "mondostructures.h"
    1819#include "libmondo-string-EXT.h"
     
    14501451    char *result_sz = NULL;
    14511452    char *message_to_screen = NULL;
    1452     char *old_pwd;
     1453    char *old_pwd = NULL;
    14531454    char *mds = NULL;
    14541455
    1455     malloc_string(old_pwd);
    14561456    assert(bkpinfo != NULL);
    14571457
    14581458    log_msg(2, "make_usb_fs --- scratchdir=%s", bkpinfo->scratchdir);
    1459     tmp1 = getcwd(old_pwd, MAX_STR_LEN - 1);
     1459    old_pwd = mr_getcwd();
    14601460    mr_asprintf(tmp, "chmod 700 %s", bkpinfo->scratchdir);
    14611461    run_program_and_log_output(tmp, FALSE);
     
    15331533        // FIXME
    15341534    }
     1535    mr_free(old_pwd);
    15351536    if (retval) {
    15361537        log_msg(1, "WARNING - make_usb_fs returned an error");
    15371538    }
    1538     paranoid_free(old_pwd);
    1539     return (retval);
     1539    return(retval);
    15401540}
    15411541
     
    15581558 * @return The number of errors encountered (0 for success)
    15591559 */
    1560 int make_iso_fs(char *destfile)
    1561 {
     1560int make_iso_fs(char *destfile) {
    15621561    /*@ int ********************************************** */
    15631562    int retval = 0;
     
    15661565    /*@ buffers ****************************************** */
    15671566    char *tmp = NULL;
    1568     char *tmp2 = NULL;
    1569     char *old_pwd;
     1567    char *old_pwd = NULL;
    15701568    char *result_sz = NULL;
    15711569    char *message_to_screen = NULL;
    15721570    char *sz_blank_disk = NULL;
    1573     char *fnam = NULL;
    15741571    char *isofs_cmd = NULL;
    15751572    char *full_isofs_cmd = NULL;
     
    15781575    bool cd_is_mountable;
    15791576
    1580     malloc_string(old_pwd);
    1581     malloc_string(fnam);
    15821577    assert(bkpinfo != NULL);
    15831578    assert_string_is_neither_NULL_nor_zerolength(destfile);
     
    15881583
    15891584    log_msg(2, "make_iso_fs --- scratchdir=%s --- destfile=%s", bkpinfo->scratchdir, destfile);
    1590     tmp2 = getcwd(old_pwd, MAX_STR_LEN - 1);
    1591     if (! tmp2) {
    1592         //FIXME
    1593     }
     1585    old_pwd = mr_getcwd();
    15941586    mr_asprintf(tmp, "chmod 700 %s", bkpinfo->scratchdir);
    15951587    run_program_and_log_output(tmp, FALSE);
     
    18251817        // FIXME
    18261818    }
     1819    mr_free(old_pwd);
    18271820    if (retval) {
    18281821        log_msg(1, "WARNING - make_iso_fs returned an error");
    18291822    }
    1830     paranoid_free(old_pwd);
    1831     paranoid_free(fnam);
    1832     paranoid_free(tmp);
    18331823    return (retval);
    18341824}
  • branches/3.2/mondo/src/common/libmondo-files.c

    r3611 r3613  
    1111#include "my-stuff.h"
    1212#include "mr_mem.h"
     13#include "mr_file.h"
    1314#include "mondostructures.h"
    1415#include "libmondo-files.h"
     
    10131014    char *command = NULL;
    10141015    char *tmp = NULL;
    1015     char old_pwd[MAX_STR_LEN];
     1016    char *old_pwd = NULL;
    10161017    int res = 0;
    10171018
     
    10351036    if (does_file_exist(tmp)) {
    10361037        log_it("Untarring payload %s to scratchdir %s", tmp, bkpinfo->scratchdir);
    1037         if (getcwd(old_pwd, MAX_STR_LEN - 1)) {
    1038             // FIXME
    1039         }
     1038        old_pwd = mr_getcwd();
    10401039        if (chdir(bkpinfo->scratchdir)) {
    10411040            // FIXME
     
    10521051            // FIXME
    10531052        }
     1053        mr_free(old_pwd);
    10541054    }
    10551055    mr_free(tmp);
  • branches/3.2/mondo/src/common/libmondo-stream.c

    r3611 r3613  
    1414#include "my-stuff.h"
    1515#include "mr_mem.h"
     16#include "mr_file.h"
    1617#include "mondostructures.h"
    1718#include "libmondo-devices.h"
     
    764765    char *datablock;
    765766    char *tmp = NULL;
    766     char old_cwd[MAX_STR_LEN];
     767    char *old_pwd = NULL;
    767768    char *outfname = NULL;
    768769    /*@ int ******************************************************* */
     
    865866    close_evalcall_form();
    866867    log_it("Saved all.tar.gz to '%s'", outfname);
    867     if (getcwd(old_cwd, MAX_STR_LEN)) {
    868         // FIXME
    869     }
     868    old_pwd = mr_getcwd();
    870869    if (chdir(bkpinfo->tmpdir)) {
    871870        // FIXME
     
    876875
    877876    paranoid_system("cp -f tmp/mondorestore.cfg . 2> /dev/null");
    878     if (chdir(old_cwd)) {
     877    if (chdir(old_pwd)) {
    879878        // FIXME
    880879    }
     880    mr_free(old_pwd);
    881881    unlink(outfname);
    882882    mr_free(outfname);
  • branches/3.2/mondo/src/common/libmondo-tools.c

    r3610 r3613  
    107107    bool is_valid = TRUE;
    108108
    109     log_it("ASSERTION FAILED: `%s' at %s:%d in %s", exp, file, line,
    110            function);
     109    log_it("ASSERTION FAILED: `%s' at %s:%d in %s", exp, file, line, function);
    111110    if (ignoring_assertions) {
    112111        log_it("Well, the user doesn't care...");
     
    143142             */
    144143        case '\n':
    145             printf
    146                 ("(I)gnore, ignore (A)ll, (D)ebug, a(B)ort, or (E)xit? ");
     144            printf("(I)gnore, ignore (A)ll, (D)ebug, a(B)ort, or (E)xit? ");
    147145            break;
    148146        default:
     
    938936    if (system("which " MKE2FS_OR_NEWFS " > /dev/null 2> /dev/null")) {
    939937        retval++;
    940         log_to_screen
    941             ("Unable to find " MKE2FS_OR_NEWFS " in system path.");
    942         fatal_error
    943             ("Please use \"su -\", not \"su\" to become root. OK? ...and please don't e-mail the mailing list or me about this. Just read the message. :)");
     938        log_to_screen("Unable to find " MKE2FS_OR_NEWFS " in system path.");
     939        fatal_error("Please use \"su -\", not \"su\" to become root. OK?\n...and please don't e-mail the mailing list about this. Just read the message. :)");
    944940    }
    945941#ifndef __FreeBSD__
    946     if (run_program_and_log_output
    947         ("grep ramdisk /proc/devices", FALSE)) {
     942    if (run_program_and_log_output("grep ramdisk /proc/devices", FALSE)) {
    948943        /* Some SuSE have ramdisk as modules, so insert it first, then test again */
    949944        run_program_and_log_output("modprobe brd 2> /dev/null > /dev/null",FALSE);
  • branches/3.2/mondo/src/common/libmondo-verify.c

    r3380 r3613  
    418418    /*@ long *********************************************************** */
    419419    long diffs = 0;
    420     /*  getcwd(old_pwd,MAX_STR_LEN-1); */
    421420
    422421    assert(bkpinfo != NULL);
  • branches/3.2/mondo/src/include/mr_file.h

    r3612 r3613  
    2727extern void mr_fclose_int(FILE **fd, int line, char *file);
    2828extern void mr_mkdir_int(const char *pathname, mode_t mode, int line, char *file);
    29 extern char *mr_mkdir_int(int line, char *file);
     29extern char *mr_getcwd_int(int line, char *file);
    3030
    3131#endif                          /* MR_FILE_H */
  • branches/3.2/mondo/src/mondorestore/mondo-rstr-compare.c

    r3273 r3613  
    66#include "my-stuff.h"
    77#include "mr_mem.h"
     8#include "mr_file.h"
    89#include "../common/mondostructures.h"
    910#include "../common/libmondo.h"
     
    452453  /** needs malloc *********/
    453454    char *tmp = NULL;
    454     char *cwd, *new;
     455    char *old_pwd = NULL;
    455456    char *command = NULL;
    456457    int resA = 0;
     
    459460
    460461    malloc_string(tmp);
    461     malloc_string(cwd);
    462     malloc_string(new);
    463 
    464462    assert(bkpinfo != NULL);
    465463
    466     if (getcwd(cwd, MAX_STR_LEN - 1)) {
    467         // FIXME
    468     }
     464    old_pwd = mr_getcwd();
    469465    if (chdir(bkpinfo->restore_path)) {
    470466        //FIXME
    471467    }
    472     if (getcwd(new, MAX_STR_LEN - 1)) {
    473         // FIXME
    474     }
    475468    insist_on_this_cd_number(g_current_media_number);
    476469    unlink(MONDO_CACHE"/changed.txt");
     
    478471    resA = compare_all_tarballs();
    479472    resB = compare_all_biggiefiles();
    480     if (chdir(cwd)) {
     473    if (chdir(old_pwd)) {
    481474        // FIXME
    482475    }
     476    mr_free(old_pwd);
     477
    483478    noof_changed_files = count_lines_in_file(MONDO_CACHE"/changed.txt");
    484479    if (noof_changed_files) {
     
    494489        mr_free(tmp);
    495490    }
    496 
    497     paranoid_free(cwd);
    498     paranoid_free(new);
    499 
    500491    return (resA + resB);
    501492}
     
    525516    long q;
    526517    char *tmp = NULL;
    527     char *new;
    528     char *cwd;
    529 
    530     malloc_string(new);
    531     malloc_string(cwd);
     518    char *old_pwd = NULL;
    532519
    533520  /**************************************************************************
     
    612599
    613600            log_msg(2, "calling popup_changelist_from_file()");
    614             if (getcwd(cwd, MAX_STR_LEN - 1)) {
    615                 //FIXME
    616             }
     601            old_pwd = mr_getcwd();
    617602            if (chdir(bkpinfo->restore_path)) {
    618603                // FIXME
    619604            }
    620             if (getcwd(new, MAX_STR_LEN - 1)) {
    621                 //FIXME
    622             }
    623605            popup_changelist_from_file(MONDO_CACHE"/changed.files");
    624             if (chdir(cwd)) {
     606            if (chdir(old_pwd)) {
    625607                // FIXME
    626608            }
     609            mr_free(old_pwd);
    627610            log_msg(2, "Returning from popup_changelist_from_file()");
    628611        }
     
    634617
    635618    kill_petris();
    636     paranoid_free(new);
    637     paranoid_free(cwd);
    638619    return (retval);
    639620}
  • branches/3.2/mondo/src/mondorestore/mondo-rstr-tools.c

    r3610 r3613  
    88#include "mr_mem.h"
    99#include "mr_str.h"
     10#include "mr_file.h"
    1011#include "../common/mondostructures.h"
    1112#include "../common/libmondo.h"
     
    127128FILE *fout;
    128129char *incoming = NULL;
     130char *p = NULL;
    129131char *question = NULL;
    130132
     
    10121014
    10131015char *command = NULL;
    1014 char *tmp;
     1016char *old_pwd = NULL;
    10151017char *q;
    10161018int res = 0;
     
    10191021
    10201022assert(bkpinfo != NULL);
    1021 malloc_string(tmp);
    10221023
    10231024/* If those files already exist, do not overwrite them later on */
     
    10351036        "Filelist and biggielist already recovered from media. Yay!");
    10361037} else {
    1037     if (getcwd(tmp, MAX_STR_LEN) == NULL) {
    1038         // FIXME
    1039     }
     1038    old_pwd = mr_getcwd();
    10401039    if (chdir(bkpinfo->tmpdir)) {
    10411040        // FIXME
     
    11131112    }
    11141113
    1115     if (chdir(tmp)) {
     1114    if (chdir(old_pwd)) {
    11161115        // FIXME
    11171116    }
     1117    mr_free(old_pwd);
    11181118
    11191119    if (!does_file_exist(g_biggielist_txt)) {
     
    11921192    }
    11931193
    1194     paranoid_free(tmp);
    11951194    return (filelist);
    11961195}
  • branches/3.2/mondo/src/mondorestore/mondorestore.c

    r3610 r3613  
    1111#include "my-stuff.h"
    1212#include "mr_mem.h"
     13#include "mr_file.h"
    1314#include "../common/mondostructures.h"
    1415#include "../common/libmondo.h"
     
    17461747
    17471748  /** mallco ***/
    1748     char *cwd;
    1749     char *newpath;
     1749    char *old_pwd = NULL;
     1750    char *newpath = NULL;
    17501751    char *tmp = NULL;
    17511752    assert(bkpinfo != NULL);
    17521753
    1753     malloc_string(cwd);
    1754     malloc_string(newpath);
    17551754    log_msg(2, "restore_everything() --- starting");
    17561755    g_current_media_number = 1;
    1757     if (getcwd(cwd, MAX_STR_LEN - 1)) {
    1758         // FIXME
    1759     }
     1756    old_pwd = mr_getcwd();
    17601757    mr_asprintf(tmp, "mkdir -p %s", bkpinfo->restore_path);
    17611758    run_program_and_log_output(tmp, FALSE);
     
    17661763        //FIXME
    17671764    }
    1768     if (getcwd(newpath, MAX_STR_LEN - 1)) {
    1769         // FIXME
    1770     }
     1765    newpath = mr_getcwd();
    17711766    log_msg(1, "path is now %s", newpath);
     1767    mr_free(newpath);
     1768
    17721769    log_msg(1, "restoring everything");
    17731770    if (!find_home_of_exe("petris") && !g_text_mode) {
     
    18001797        resB = restore_all_biggiefiles_from_CD(filelist);
    18011798    }
    1802     if (chdir(cwd)) {
     1799    if (chdir(old_pwd)) {
    18031800        //FIXME
    18041801    }
     1802    mr_free(old_pwd);
    18051803    if (resA + resB) {
    18061804        log_to_screen("Errors occurred while data was being restored.");
     
    18131811    kill_petris();
    18141812    log_msg(2, "restore_everything() --- leaving");
    1815     paranoid_free(cwd);
    1816     paranoid_free(newpath);
    18171813    return (resA + resB);
    18181814}
Note: See TracChangeset for help on using the changeset viewer.