Changeset 900 in MondoRescue for trunk/mondo/src/mondorestore


Ignore:
Timestamp:
Oct 24, 2006, 8:49:18 AM (18 years ago)
Author:
Bruno Cornec
Message:

Huge patch to introduce low level functions that will bw used everywhere (mr_free, mr_asprintf, ...)
Nearly linking now due to that.

Location:
trunk/mondo/src/mondorestore
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/mondo/src/mondorestore/Makefile.am

    r867 r900  
     1## $Id$
    12##
    23## Process with Automake to generate Makefile.in
     
    1415mondorestore_SOURCES  = mondo-prep.c mondo-restore.c mondo-rstr-newt.c \
    1516                        mondo-rstr-compare.c mondo-rstr-tools.c
    16 mondorestore_LDADD    = ${top_builddir}/src/common/libmondo.a  ${top_builddir}/src/lib/libmr.a @MONDORESTORE_STATIC@
    17 
    18 
     17mondorestore_LDADD    = ${top_builddir}/src/common/libmondo.a ${top_builddir}/src/lib/libmr.a @MONDORESTORE_STATIC@
  • trunk/mondo/src/mondorestore/mondo-prep.c

    r783 r900  
    1919#include <math.h>
    2020#include <unistd.h>
     21#include "mr_mem.h"
    2122
    2223
     
    6364        make_list_of_drives_in_mountlist(mountlist, drivelist);
    6465        for (lino = 0; lino < drivelist->entries; lino++) {
    65             asprintf(&command,
     66            mr_asprintf(&command,
    6667                     "dd if=%s bs=512 count=1 2> /dev/null | grep \"%s\"",
    6768                     drivelist->el[lino].device, MONDO_WAS_HERE);
     
    6970                log_msg(1, "Found MONDO_WAS_HERE marker on drive#%d (%s)",
    7071                        lino, drivelist->el[lino].device);
    71                 paranoid_free(command);
     72                mr_free(command);
    7273                break;
    7374            }
    74             paranoid_free(command);
     75            mr_free(command);
    7576        }
    7677
     
    8687            log_to_screen("Please hit 'Enter' to reboot.");
    8788            for (lino = 0; lino < drivelist->entries; lino++) {
    88                 asprintf(&buf, "%s\n", MONDO_WAS_HERE);
     89                mr_asprintf(&buf, "%s\n", MONDO_WAS_HERE);
    8990                fout = fopen(drivelist->el[lino].device, "w+");
    9091                if (!fout) {
     
    101102                    fclose(fout);
    102103                }
    103                 paranoid_free(buf);
     104                mr_free(buf);
    104105            }
    105106            sync();
     
    201202    if (tmp)    // found it :) cool
    202203    {
    203         asprintf(&lvscan_sz, "lvm lvscan");
    204         asprintf(&lvremove_sz, "lvm lvremove");
    205         asprintf(&vgscan_sz, "lvm vgscan");
    206         asprintf(&pvscan_sz, "lvm pvscan");
    207         asprintf(&vgchange_sz, "lvm vgchange");
    208         asprintf(&vgremove_sz, "lvm vgremove");
     204        mr_asprintf(&lvscan_sz, "lvm lvscan");
     205        mr_asprintf(&lvremove_sz, "lvm lvremove");
     206        mr_asprintf(&vgscan_sz, "lvm vgscan");
     207        mr_asprintf(&pvscan_sz, "lvm pvscan");
     208        mr_asprintf(&vgchange_sz, "lvm vgchange");
     209        mr_asprintf(&vgremove_sz, "lvm vgremove");
    209210    } else {
    210         asprintf(&lvscan_sz, "lvscan");
    211         asprintf(&lvremove_sz, "lvremove");
    212         asprintf(&vgscan_sz, "vgscan");
    213         asprintf(&pvscan_sz, "pvscan");
    214         asprintf(&vgchange_sz, "vgchange");
    215         asprintf(&vgremove_sz, "vgremove");
    216     }
    217     paranoid_free(tmp);
    218 
    219     asprintf(&command,
     211        mr_asprintf(&lvscan_sz, "lvscan");
     212        mr_asprintf(&lvremove_sz, "lvremove");
     213        mr_asprintf(&vgscan_sz, "vgscan");
     214        mr_asprintf(&pvscan_sz, "pvscan");
     215        mr_asprintf(&vgchange_sz, "vgchange");
     216        mr_asprintf(&vgremove_sz, "vgremove");
     217    }
     218    mr_free(tmp);
     219
     220    mr_asprintf(&command,
    220221            "for i in `%s | cut -d\"'\" -f2 | sort -r` ; do echo \"Shutting down lv $i\" >> "
    221222            MONDO_LOGFILE "; %s -f $i; done", lvscan_sz, lvremove_sz);
    222     paranoid_free(lvscan_sz);
    223     paranoid_free(lvremove_sz);
     223    mr_free(lvscan_sz);
     224    mr_free(lvremove_sz);
    224225
    225226    run_program_and_log_output(command, 5);
    226     paranoid_free(command);
     227    mr_free(command);
    227228
    228229    sleep(1);
    229     asprintf(&command,
     230    mr_asprintf(&command,
    230231            "for i in `%s | grep -i lvm | cut -d'\"' -f2` ; do %s -a n $i ; %s $i; echo \"Shutting down vg $i\" >> "
    231232            MONDO_LOGFILE "; done", vgscan_sz, vgchange_sz, vgremove_sz);
    232     paranoid_free(vgchange_sz);
    233     paranoid_free(vgremove_sz);
     233    mr_free(vgchange_sz);
     234    mr_free(vgremove_sz);
    234235
    235236    run_program_and_log_output(command, 5);
    236     paranoid_free(command);
     237    mr_free(command);
    237238
    238239    if (just_erase_existing_volumes) {
     
    250251    log_msg(1, "OK, rewound i-want-my-lvm. Doing funky stuff...");
    251252    rewind(fin);
    252     for (getline(&incoming, &n1, fin); !feof(fin); getline(&incoming, &n1, fin)) {
     253    for (mr_getline(&incoming, &n1, fin); !feof(fin); mr_getline(&incoming, &n1, fin)) {
    253254        fgetpos(fin, &orig_pos);
    254255        /* we want to execute lines begining with a # */
     
    264265        if ((p = strstr(incoming, "vgcreate"))) {
    265266            // include next line(s) if they end in /dev (cos we've got a broken i-want-my-lvm)
    266             for (getline(&tmp, &n, fin); !feof(fin); getline(&tmp, &n, fin)) {
     267            for (mr_getline(&tmp, &n, fin); !feof(fin); mr_getline(&tmp, &n, fin)) {
    267268                if (tmp[0] == '#') {
    268269                    fsetpos(fin, &orig_pos);
     
    270271                } else {
    271272                    fgetpos(fin, &orig_pos);
    272                     asprintf(&tmp1, "%s%s", incoming, tmp);
    273                     paranoid_free(incoming);
     273                    mr_asprintf(&tmp1, "%s%s", incoming, tmp);
     274                    mr_free(incoming);
    274275                    incoming = tmp1;
    275276                }
    276277            }
    277             paranoid_free(tmp);
     278            mr_free(tmp);
    278279
    279280            for (q = incoming; *q != '\0'; q++) {
     
    282283                }
    283284            }
    284             asprintf(&tmp1, p + strlen("vgcreate") + 1);
     285            mr_asprintf(&tmp1, p + strlen("vgcreate") + 1);
    285286            for (q = tmp1; *q > 32; q++);
    286287            *q = '\0';
    287288            log_msg(1, "Deleting old entries at /dev/%s", tmp1);
    288             asprintf(&tmp, "rm -Rf /dev/%s", tmp1);
    289             paranoid_free(tmp1);
     289            mr_asprintf(&tmp, "rm -Rf /dev/%s", tmp1);
     290            mr_free(tmp1);
    290291
    291292            run_program_and_log_output(tmp, 1);
    292             paranoid_free(tmp);
     293            mr_free(tmp);
    293294
    294295            run_program_and_log_output(vgscan_sz, 1);
     
    299300        }
    300301        for (p = incoming + 1; *p == ' '; p++);
    301         paranoid_alloc(command,p);
     302        mr_allocstr(command,p);
    302303        for (p = command; *p != '\0'; p++);
    303304        for (; *(p - 1) < 32; p--);
     
    333334            extents = atol(p);
    334335            log_msg(5, "p='%s' --> extents=%ld", p, extents);
    335             paranoid_free(tmp);
     336            mr_free(tmp);
    336337
    337338            p = strstr(command, "-L");
     
    384385            retval++;
    385386        }
    386         asprintf(&tmp, "echo \"%s\" >> /tmp/out.sh", command);
     387        mr_asprintf(&tmp, "echo \"%s\" >> /tmp/out.sh", command);
    387388        system(tmp);
    388         paranoid_free(tmp);
     389        mr_free(tmp);
    389390        sleep(1);
    390391    }
    391392    paranoid_fclose(fin);
    392     paranoid_free(vgscan_sz);
    393     paranoid_free(pvscan_sz);
    394     paranoid_free(command);
    395     paranoid_free(incoming);
     393    mr_free(vgscan_sz);
     394    mr_free(pvscan_sz);
     395    mr_free(command);
     396    mr_free(incoming);
    396397
    397398    log_msg(1, "Closed i-want-my-lvm. Finished doing funky stuff.");
     
    460461                finish(1);
    461462            }
    462             for (getline(&incoming, &n, fin); !feof(fin)
     463            for (mr_getline(&incoming, &n, fin); !feof(fin)
    463464                 && !strstr(incoming, old_mountlist->el[lino].device);
    464                  getline(&incoming, &n, fin));
     465                 mr_getline(&incoming, &n, fin));
    465466            if (!feof(fin)) {
    466                 asprintf(&tmp, "Investigating %s",
     467                mr_asprintf(&tmp, "Investigating %s",
    467468                        old_mountlist->el[lino].device);
    468469                log_it(tmp);
    469                 paranoid_free(tmp);
    470 
    471                 for (getline(&incoming, &n, fin); !feof(fin)
     470                mr_free(tmp);
     471
     472                for (mr_getline(&incoming, &n, fin); !feof(fin)
    472473                     && !strstr(incoming, "raiddev");
    473                      getline(&incoming, &n, fin)) {
     474                     mr_getline(&incoming, &n, fin)) {
    474475                    if (strstr(incoming, OSSWAP("device", "drive"))
    475476                        && !strchr(incoming, '#')) {
     
    478479                        *p = '\0';
    479480                        for (p--; p > incoming && *(p - 1) > 32; p--);
    480                         asprintf(&tmp, "Extrapolating %s", p);
     481                        mr_asprintf(&tmp, "Extrapolating %s", p);
    481482                        log_it(tmp);
    482                         paranoid_free(tmp);
     483                        mr_free(tmp);
    483484
    484485                        for (j = 0;
     
    499500                            new_mountlist->entries++;
    500501                        } else {
    501                             asprintf(&tmp,
     502                            mr_asprintf(&tmp,
    502503                                    "Not adding %s to mountlist: it's already there", p);
    503504                            log_it(tmp);
    504                             paranoid_free(tmp);
     505                            mr_free(tmp);
    505506                        }
    506507                    }
    507508                }
    508509            }
    509             paranoid_free(incoming);
     510            mr_free(incoming);
    510511            paranoid_fclose(fin);
    511512        } else {
     
    566567    }
    567568    // create device list from normal disks followed by spare ones
    568     asprintf(&devices, raidlist->el[i].data_disks.el[0].device);
     569    mr_asprintf(&devices, raidlist->el[i].data_disks.el[0].device);
    569570    for (j = 1; j < raidlist->el[i].data_disks.entries; j++) {
    570         asprintf(&strtmp, "%s", devices);
    571         paranoid_free(devices);
    572         asprintf(&devices, "%s %s", strtmp,
     571        mr_asprintf(&strtmp, "%s", devices);
     572        mr_free(devices);
     573        mr_asprintf(&devices, "%s %s", strtmp,
    573574                 raidlist->el[i].data_disks.el[j].device);
    574         paranoid_free(strtmp);
     575        mr_free(strtmp);
    575576    }
    576577    for (j = 0; j < raidlist->el[i].spare_disks.entries; j++) {
    577         asprintf(&strtmp, "%s", devices);
    578         paranoid_free(devices);
    579         asprintf(&devices, "%s %s", strtmp,
     578        mr_asprintf(&strtmp, "%s", devices);
     579        mr_free(devices);
     580        mr_asprintf(&devices, "%s %s", strtmp,
    580581                 raidlist->el[i].spare_disks.el[j].device);
    581         paranoid_free(strtmp);
     582        mr_free(strtmp);
    582583    }
    583584    // translate RAID level
    584585    if (raidlist->el[i].raid_level == -2) {
    585         asprintf(&level, "multipath");
     586        mr_asprintf(&level, "multipath");
    586587    } else if (raidlist->el[i].raid_level == -1) {
    587         asprintf(&level, "linear");
     588        mr_asprintf(&level, "linear");
    588589    } else {
    589         asprintf(&level, "raid%d", raidlist->el[i].raid_level);
     590        mr_asprintf(&level, "raid%d", raidlist->el[i].raid_level);
    590591    }
    591592    // create RAID device:
     
    594595    // - faulty devices ignored
    595596    // - persistent superblock always used as this is recommended
    596     asprintf(&program,
     597    mr_asprintf(&program,
    597598             "mdadm --create --force --run --auto=yes %s --level=%s --raid-devices=%d",
    598599             raidlist->el[i].raid_device, level,
    599600             raidlist->el[i].data_disks.entries);
    600601    if (raidlist->el[i].parity != -1) {
    601         asprintf(&strtmp, "%s", program);
    602         paranoid_free(program);
     602        mr_asprintf(&strtmp, "%s", program);
     603        mr_free(program);
    603604        switch (raidlist->el[i].parity) {
    604605        case 0:
    605             asprintf(&program, "%s --parity=%s", strtmp, "la");
     606            mr_asprintf(&program, "%s --parity=%s", strtmp, "la");
    606607            break;
    607608        case 1:
    608             asprintf(&program, "%s --parity=%s", strtmp, "ra");
     609            mr_asprintf(&program, "%s --parity=%s", strtmp, "ra");
    609610            break;
    610611        case 2:
    611             asprintf(&program, "%s --parity=%s", strtmp, "ls");
     612            mr_asprintf(&program, "%s --parity=%s", strtmp, "ls");
    612613            break;
    613614        case 3:
    614             asprintf(&program, "%s --parity=%s", strtmp, "rs");
     615            mr_asprintf(&program, "%s --parity=%s", strtmp, "rs");
    615616            break;
    616617        default:
     
    618619            break;
    619620        }
    620         paranoid_free(strtmp);
     621        mr_free(strtmp);
    621622    }
    622623    if (raidlist->el[i].chunk_size != -1) {
    623         asprintf(&strtmp, "%s", program);
    624         paranoid_free(program);
    625         asprintf(&program, "%s --chunk=%d", strtmp,
     624        mr_asprintf(&strtmp, "%s", program);
     625        mr_free(program);
     626        mr_asprintf(&program, "%s --chunk=%d", strtmp,
    626627                 raidlist->el[i].chunk_size);
    627         paranoid_free(strtmp);
     628        mr_free(strtmp);
    628629    }
    629630    if (raidlist->el[i].spare_disks.entries > 0) {
    630         asprintf(&strtmp, "%s", program);
    631         paranoid_free(program);
    632         asprintf(&program, "%s --spare-devices=%d", strtmp,
     631        mr_asprintf(&strtmp, "%s", program);
     632        mr_free(program);
     633        mr_asprintf(&program, "%s --spare-devices=%d", strtmp,
    633634                 raidlist->el[i].spare_disks.entries);
    634         paranoid_free(strtmp);
    635     }
    636     asprintf(&strtmp, "%s", program);
    637     paranoid_free(program);
    638     asprintf(&program, "%s %s", strtmp, devices);
    639     paranoid_free(strtmp);
     635        mr_free(strtmp);
     636    }
     637    mr_asprintf(&strtmp, "%s", program);
     638    mr_free(program);
     639    mr_asprintf(&program, "%s %s", strtmp, devices);
     640    mr_free(strtmp);
    640641    res = run_program_and_log_output(program, 1);
    641642    // free memory
    642     paranoid_free(devices);
    643     paranoid_free(level);
    644     paranoid_free(program);
     643    mr_free(devices);
     644    mr_free(level);
     645    mr_free(program);
    645646    // return to calling instance
    646647    return res;
     
    687688
    688689    if (strstr(format, "raid")) {   // do not form RAID disks; do it to /dev/md* instead
    689         asprintf(&tmp, "Not formatting %s (it is a RAID disk)", device);
     690        mr_asprintf(&tmp, "Not formatting %s (it is a RAID disk)", device);
    690691        log_it(tmp);
    691         paranoid_free(tmp);
     692        mr_free(tmp);
    692693        return (0);
    693694    }
     
    699700#endif
    700701    if (strlen(format) <= 2) {
    701         asprintf(&tmp,
     702        mr_asprintf(&tmp,
    702703                "%s has a really small format type ('%s') - this is probably a hexadecimal string, which would suggest the partition is an image --- I shouldn't format it",
    703704                device, format);
    704705        log_it(tmp);
    705         paranoid_free(tmp);
     706        mr_free(tmp);
    706707        return (0);
    707708    }
    708709    if (is_this_device_mounted(device)) {
    709         asprintf(&tmp, _("%s is mounted - cannot format it       "), device);
     710        mr_asprintf(&tmp, _("%s is mounted - cannot format it       "), device);
    710711        log_to_screen(tmp);
    711         paranoid_free(tmp);
     712        mr_free(tmp);
    712713        return (1);
    713714    }
     
    736737
    737738        if (vinum_started_yet) {
    738             asprintf(&tmp,
     739            mr_asprintf(&tmp,
    739740                    _
    740741                    ("Initializing Vinum device %s (this may take a *long* time)"),
    741742                    device);
    742743            log_to_screen(tmp);
    743             paranoid_free(tmp);
     744            mr_free(tmp);
    744745
    745746            /* format raid partition */
    746             asprintf(&program,
     747            mr_asprintf(&program,
    747748                    "for plex in `vinum lv -r %s | grep '^P' | tr '\t' ' ' | tr -s ' ' | cut -d' ' -f2`; do echo $plex; done > /tmp/plexes",
    748749                    basename(device));
     
    752753                fprintf(g_fprep, "%s\n", program);
    753754            }
    754             paranoid_free(program);
     755            mr_free(program);
    755756
    756757            fin = fopen("/tmp/plexes", "r");
    757             while (getline(&line, &n, fin)) {
     758            while (mr_getline(&line, &n, fin)) {
    758759                if (strchr(line, '\n'))
    759760                    *(strchr(line, '\n')) = '\0';   // get rid of the \n on the end
    760761
    761                 asprintf(&tmp, "Initializing plex: %s", line);
     762                mr_asprintf(&tmp, "Initializing plex: %s", line);
    762763                open_evalcall_form(tmp);
    763                 paranoid_free(tmp);
    764 
    765                 asprintf(&tmp, "vinum init %s", line);
     764                mr_free(tmp);
     765
     766                mr_asprintf(&tmp, "vinum init %s", line);
    766767                system(tmp);
    767                 paranoid_free(tmp);
     768                mr_free(tmp);
    768769
    769770                while (1) {
    770                     asprintf(&tmp,
     771                    mr_asprintf(&tmp,
    771772                            "vinum lp -r %s | grep '^S' | head -1 | tr -s ' ' | cut -d: -f2 | cut -f1 | sed 's/^ //' | sed 's/I //' | sed 's/%%//'",
    772773                            line);
    773774                    pin = popen(tmp, "r");
    774                     paranoid_free(tmp);
    775 
    776                     getline(&status, &n1, pin);
     775                    mr_free(tmp);
     776
     777                    mr_getline(&status, &n1, pin);
    777778                    pclose(pin);
    778779
     
    782783                    update_evalcall_form(atoi(status));
    783784                    usleep(250000);
    784                     paranoid_free(status);
     785                    mr_free(status);
    785786                }
    786787                close_evalcall_form();
    787788            }
    788             paranoid_free(line);
     789            mr_free(line);
    789790            fclose(fin);
    790791            unlink("/tmp/plexes");
     
    792793        }
    793794#else
    794         asprintf(&tmp, _("Initializing RAID device %s"), device);
     795        mr_asprintf(&tmp, _("Initializing RAID device %s"), device);
    795796        log_to_screen(tmp);
    796         paranoid_free(tmp);
     797        mr_free(tmp);
    797798
    798799// Shouldn't be necessary.
     
    814815                    device, res);
    815816        } else {
    816             asprintf(&program, "mkraid --really-force %s", device);
     817            mr_asprintf(&program, "mkraid --really-force %s", device);
    817818            res = run_program_and_log_output(program, 1);
    818819            log_msg(1, "%s returned %d", program, res);
     
    823824                fprintf(g_fprep, "%s\n", program);
    824825            }
    825             paranoid_free(program);
     826            mr_free(program);
    826827        }
    827828        sync();
     
    842843    res = which_format_command_do_i_need(format, program);
    843844    if (strstr(program, "kludge")) {
    844         asprintf(&tmp, "%s %s /", program, device);
     845        mr_asprintf(&tmp, "%s %s /", program, device);
    845846    } else {
    846         asprintf(&tmp, "%s %s", program, device);
    847     }
    848     paranoid_free(program);
    849 
    850     asprintf(&program, "sh -c 'echo -en \"y\\ny\\ny\\n\" | %s'", tmp);
    851     paranoid_free(tmp);
    852 
    853     asprintf(&tmp, "Formatting %s as %s", device, format);
     847        mr_asprintf(&tmp, "%s %s", program, device);
     848    }
     849    mr_free(program);
     850
     851    mr_asprintf(&program, "sh -c 'echo -en \"y\\ny\\ny\\n\" | %s'", tmp);
     852    mr_free(tmp);
     853
     854    mr_asprintf(&tmp, "Formatting %s as %s", device, format);
    854855    update_progress_form(tmp);
    855856
     
    857858    if (res && strstr(program, "kludge")) {
    858859#ifdef __FreeBSD__
    859         paranoid_free(program);
    860         asprintf(&program, "newfs_msdos -F 32 %s", device);
     860        mr_free(program);
     861        mr_asprintf(&program, "newfs_msdos -F 32 %s", device);
    861862#else
    862863#ifdef __IA64__
    863864        /* For EFI partitions take fat16
    864865         * as we want to make small ones */
    865         paranoid_free(program);
    866         asprintf(&program, "mkfs -t %s -F 16 %s", format, device);
     866        mr_free(program);
     867        mr_asprintf(&program, "mkfs -t %s -F 16 %s", format, device);
    867868#else
    868         paranoid_free(program);
    869         asprintf(&program, "mkfs -t %s -F 32 %s", format, device);
     869        mr_free(program);
     870        mr_asprintf(&program, "mkfs -t %s -F 32 %s", format, device);
    870871#endif
    871872#endif
     
    875876        }
    876877    }
    877     paranoid_free(program);
     878    mr_free(program);
    878879
    879880    retval += res;
    880881    if (retval) {
    881         asprintf(&tmp1, "%s%s",tmp, _("...failed"));
     882        mr_asprintf(&tmp1, "%s%s",tmp, _("...failed"));
    882883    } else {
    883         asprintf(&tmp1, "%s%s",tmp, _("...OK"));
    884     }
    885     paranoid_free(tmp);
     884        mr_asprintf(&tmp1, "%s%s",tmp, _("...OK"));
     885    }
     886    mr_free(tmp);
    886887
    887888    log_to_screen(tmp1);
    888     paranoid_free(tmp1);
     889    mr_free(tmp1);
    889890    sync();
    890891    sleep(1);
     
    923924
    924925    assert(mountlist != NULL);
    925     asprintf(&tmp, "format_everything (mountlist, interactively = %s",
     926    mr_asprintf(&tmp, "format_everything (mountlist, interactively = %s",
    926927            (interactively) ? "true" : "false");
    927928    log_it(tmp);
    928     paranoid_free(tmp);
     929    mr_free(tmp);
    929930
    930931    mvaddstr_and_log_it(g_currentY, 0, _("Formatting partitions     "));
     
    952953            if (interactively) {
    953954                // ask user if we should format the current device
    954                 asprintf(&tmp, "Shall I format %s (%s) ?", me->device,
     955                mr_asprintf(&tmp, "Shall I format %s (%s) ?", me->device,
    955956                        me->mountpoint);
    956957                do_it = ask_me_yes_or_no(tmp);
    957                 paranoid_free(tmp);
     958                mr_free(tmp);
    958959            } else {
    959960                do_it = TRUE;
     
    10031004        me = &mountlist->el[lino];  // the current mountlist entry
    10041005        if (!strcmp(me->mountpoint, "image")) {
    1005             asprintf(&tmp, "Not formatting %s - it's an image", me->device);
     1006            mr_asprintf(&tmp, "Not formatting %s - it's an image", me->device);
    10061007            log_it(tmp);
    1007             paranoid_free(tmp);
     1008            mr_free(tmp);
    10081009        } else if (!strcmp(me->format, "raid")) {
    1009             asprintf(&tmp, "Not formatting %s - it's a raid-let",
     1010            mr_asprintf(&tmp, "Not formatting %s - it's a raid-let",
    10101011                    me->device);
    10111012            log_it(tmp);
    1012             paranoid_free(tmp);
     1013            mr_free(tmp);
    10131014            continue;
    10141015        } else if (!strcmp(me->format, "lvm")) {
    1015             asprintf(&tmp, "Not formatting %s - it's an LVM", me->device);
     1016            mr_asprintf(&tmp, "Not formatting %s - it's an LVM", me->device);
    10161017            log_it(tmp);
    1017             paranoid_free(tmp);
     1018            mr_free(tmp);
    10181019            continue;
    10191020        } else if (!strncmp(me->device, "/dev/md", 7)) {
    1020             asprintf(&tmp, "Already formatted %s - it's a soft-RAID dev",
     1021            mr_asprintf(&tmp, "Already formatted %s - it's a soft-RAID dev",
    10211022                    me->device);
    10221023            log_it(tmp);
    1023             paranoid_free(tmp);
     1024            mr_free(tmp);
    10241025            continue;
    10251026        } else if (!does_file_exist(me->device)
    10261027                   && strncmp(me->device, "/dev/hd", 7)
    10271028                   && strncmp(me->device, "/dev/sd", 7)) {
    1028             asprintf(&tmp,
     1029            mr_asprintf(&tmp,
    10291030                    "Not formatting %s yet - doesn't exist - probably an LVM",
    10301031                    me->device);
    10311032            log_it(tmp);
    1032             paranoid_free(tmp);
     1033            mr_free(tmp);
    10331034            continue;
    10341035        } else {
    10351036            if (interactively) {
    10361037                // ask user if we should format the current device
    1037                 asprintf(&tmp, "Shall I format %s (%s) ?", me->device,
     1038                mr_asprintf(&tmp, "Shall I format %s (%s) ?", me->device,
    10381039                        me->mountpoint);
    10391040                do_it = ask_me_yes_or_no(tmp);
    1040                 paranoid_free(tmp);
     1041                mr_free(tmp);
    10411042            } else {
    10421043                do_it = TRUE;
     
    10681069    }
    10691070
    1070     asprintf(&tmp, "format_everything () - %s",
     1071    mr_asprintf(&tmp, "format_everything () - %s",
    10711072            (retval) ? "failed!" : "finished successfully");
    10721073    log_it(tmp);
    1073     paranoid_free(tmp);
     1074    mr_free(tmp);
    10741075
    10751076    if (g_partition_table_locked_up > 0) {
     
    11351136
    11361137    if (devno_we_must_allow_for >= 5) {
    1137         asprintf(&tmp, "Making dummy primary %s%d", drivename, 1);
     1138        mr_asprintf(&tmp, "Making dummy primary %s%d", drivename, 1);
    11381139        log_it(tmp);
    1139         paranoid_free(tmp);
     1140        mr_free(tmp);
    11401141
    11411142        g_maximum_progress++;
     
    11511152    }
    11521153    for (; current_devno < devno_we_must_allow_for; current_devno++) {
    1153         asprintf(&tmp, "Creating dummy partition %s%d", drivename,
     1154        mr_asprintf(&tmp, "Creating dummy partition %s%d", drivename,
    11541155                current_devno);
    11551156        log_it(tmp);
    1156         paranoid_free(tmp);
     1157        mr_free(tmp);
    11571158
    11581159        g_maximum_progress++;
     
    13011302    off_t mediasize;
    13021303
    1303     asprintf(&lnamebuf, "%s", dkname);
     1304    mr_asprintf(&lnamebuf, "%s", dkname);
    13041305    if ((f = open(lnamebuf, O_RDONLY)) == -1) {
    13051306        warn("cannot open %s", lnamebuf);
    1306         paranoid_free(lnamebuf);
     1307        mr_free(lnamebuf);
    13071308        return (NULL);
    13081309    }
    1309     paranoid_free(lnamebuf);
     1310    mr_free(lnamebuf);
    13101311
    13111312    /* New world order */
     
    13891390    for (c = 'a'; c <= 'z'; ++c) {
    13901391        int idx;
    1391         asprintf(&subdev_str, "%s%c", drivename, c);
     1392        mr_asprintf(&subdev_str, "%s%c", drivename, c);
    13921393        if ((idx = find_device_in_mountlist(mountlist, subdev_str)) < 0) {
    13931394            lp->d_partitions[c - 'a'].p_size = 0;
     
    14141415                lp->d_partitions[c - 'a'].p_fstype = FS_OTHER;
    14151416        }
    1416         paranoid_free(subdev_str);
     1417        mr_free(subdev_str);
    14171418    }
    14181419
     
    14451446    display_disklabel(ftmp, lp);
    14461447    fclose(ftmp);
    1447     asprintf(&command, "disklabel -wr %s auto", canonical_name(drivename));
     1448    mr_asprintf(&command, "disklabel -wr %s auto", canonical_name(drivename));
    14481449    retval += run_program_and_log_output(command, TRUE);
    1449     paranoid_free(command);
    1450 
    1451     asprintf(&command, "disklabel -R %s /tmp/disklabel",
     1450    mr_free(command);
     1451
     1452    mr_asprintf(&command, "disklabel -R %s /tmp/disklabel",
    14521453            canonical_name(drivename));
    14531454    retval += run_program_and_log_output(command, TRUE);
    1454     paranoid_free(command);
     1455    mr_free(command);
    14551456    if (ret)
    14561457        *ret = *lp;
     
    14951496    assert_string_is_neither_NULL_nor_zerolength(drivename);
    14961497
    1497     asprintf(&tmp, "Partitioning drive %s", drivename);
     1498    mr_asprintf(&tmp, "Partitioning drive %s", drivename);
    14981499    log_it(tmp);
    1499     paranoid_free(tmp);
     1500    mr_free(tmp);
    15001501
    15011502#if __FreeBSD__
     
    15041505#else
    15051506    make_hole_for_file(FDISK_LOG);
    1506     asprintf(&tmp, "parted2fdisk %s >> %s 2>> %s", drivename, FDISK_LOG,
     1507    mr_asprintf(&tmp, "parted2fdisk %s >> %s 2>> %s", drivename, FDISK_LOG,
    15071508            FDISK_LOG);
    15081509    pout_to_fdisk = popen(tmp, "w");
    1509     paranoid_free(tmp);
     1510    mr_free(tmp);
    15101511
    15111512    if (!pout_to_fdisk) {
     
    15311532                // try DangerouslyDedicated mode
    15321533                for (c = 'a'; c <= 'z'; c++) {
    1533                     asprintf(&subdev_str, "%s%c", drivename, c);
     1534                    mr_asprintf(&subdev_str, "%s%c", drivename, c);
    15341535                    if (find_device_in_mountlist(mountlist, subdev_str) > 0) {
    15351536                        fbsd_part = TRUE;
    15361537                    }
    1537                     paranoid_free(subdev_str);
     1538                    mr_free(subdev_str);
    15381539                }
    15391540                if (fbsd_part) {
     
    15411542                                                 drivename,
    15421543                                                 0);
    1543                     asprintf(&command, "disklabel -B %s",
     1544                    mr_asprintf(&command, "disklabel -B %s",
    15441545                            basename(drivename));
    15451546                    if (system(command)) {
     
    15481549                             ("Warning! Unable to make the drive bootable."));
    15491550                    }
    1550                     paranoid_free(command);
    1551                     paranoid_free(device_str);
     1551                    mr_free(command);
     1552                    mr_free(device_str);
    15521553
    15531554                    return r;
     
    15551556            }
    15561557            for (c = 'a'; c <= 'z'; c++) {
    1557                 asprintf(&subdev_str, "%s%c", device_str, c);
     1558                mr_asprintf(&subdev_str, "%s%c", device_str, c);
    15581559                if (find_device_in_mountlist(mountlist, subdev_str) > 0) {
    15591560                    fbsd_part = TRUE;
    15601561                }
    1561                 paranoid_free(subdev_str);
     1562                mr_free(subdev_str);
    15621563            }
    15631564            // Now we check the subpartitions of the current partition.
     
    15651566                int i, line;
    15661567
    1567                 asprintf(&format, "ufs");
     1568                mr_asprintf(&format, "ufs");
    15681569                partsize = 0;
    15691570                for (i = 'a'; i < 'z'; ++i) {
    1570                     asprintf(&subdev_str, "%s%c", device_str, i);
     1571                    mr_asprintf(&subdev_str, "%s%c", device_str, i);
    15711572                    line = find_device_in_mountlist(mountlist, subdev_str);
    1572                     paranoid_free(subdev_str);
     1573                    mr_free(subdev_str);
    15731574
    15741575                    if (line > 0) {
     
    15961597            file = open(drivename, O_WRONLY);
    15971598            if (!file) {
    1598                 asprintf(&tmp,
     1599                mr_asprintf(&tmp,
    15991600                        _("Warning - unable to open %s for wiping it's partition table"),
    16001601                        drivename);
    16011602                log_to_screen(tmp);
    1602                 paranoid_free(tmp);
     1603                mr_free(tmp);
    16031604            }
    16041605
    16051606            for (i = 0; i < 512; i++) {
    16061607                if (!write(file, "\0", 1)) {
    1607                     asprintf(&tmp, _("Warning - unable to write to %s"),
     1608                    mr_asprintf(&tmp, _("Warning - unable to write to %s"),
    16081609                            drivename);
    16091610                    log_to_screen(tmp);
    1610                     paranoid_free(tmp);
     1611                    mr_free(tmp);
    16111612                }
    16121613            }
     
    16291630#endif
    16301631
    1631             asprintf(&format, mountlist->el[lino].format);
     1632            mr_asprintf(&format, mountlist->el[lino].format);
    16321633            partsize = mountlist->el[lino].size;
    16331634
     
    16401641                (_
    16411642                 ("You must leave at least one partition spare as the Extended partition."));
    1642             paranoid_free(device_str);
    1643             paranoid_free(format);
     1643            mr_free(device_str);
     1644            mr_free(format);
    16441645
    16451646            return (1);
     
    16521653#ifdef __FreeBSD__
    16531654        if ((current_devno <= 4) && fbsd_part) {
    1654             asprintf(&tmp, "disklabel -B %s", basename(device_str));
     1655            mr_asprintf(&tmp, "disklabel -B %s", basename(device_str));
    16551656            retval += label_drive_or_slice(mountlist, device_str, 0);
    16561657            if (system(tmp)) {
     
    16581659                    (_("Warning! Unable to make the slice bootable."));
    16591660            }
    1660             paranoid_free(tmp);
     1661            mr_free(tmp);
    16611662        }
    16621663#endif
     
    16641665        previous_devno = current_devno;
    16651666    }
    1666     paranoid_free(device_str);
    1667     paranoid_free(format);
     1667    mr_free(device_str);
     1668    mr_free(format);
    16681669
    16691670    if (pout_to_fdisk) {
     
    16711672        tmp1 = call_program_and_get_last_line_of_output
    16721673                ("make-me-bootable /tmp/mountlist.txt dummy");
    1673         asprintf(&tmp, "a\n%s\n", tmp1);
    1674         paranoid_free(tmp1);
     1674        mr_asprintf(&tmp, "a\n%s\n", tmp1);
     1675        mr_free(tmp1);
    16751676
    16761677        fput_string_one_char_at_a_time(pout_to_fdisk, tmp);
    1677         paranoid_free(tmp);
     1678        mr_free(tmp);
    16781679
    16791680        // close fdisk
     
    16831684        log_msg(0,
    16841685                "------------------- fdisk.log looks like this ------------------");
    1685         asprintf(&tmp, "cat %s >> %s", FDISK_LOG, MONDO_LOGFILE);
     1686        mr_asprintf(&tmp, "cat %s >> %s", FDISK_LOG, MONDO_LOGFILE);
    16861687        system(tmp);
    1687         paranoid_free(tmp);
     1688        mr_free(tmp);
    16881689
    16891690        log_msg(0,
    16901691                "------------------- end of fdisk.log... word! ------------------");
    1691         asprintf(&tmp, "tail -n6 %s | grep -F \"16: \"", FDISK_LOG);
     1692        mr_asprintf(&tmp, "tail -n6 %s | grep -F \"16: \"", FDISK_LOG);
    16921693        if (!run_program_and_log_output(tmp, 5)) {
    16931694            g_partition_table_locked_up++;
     
    16961697                 ("A flaw in the Linux kernel has locked the partition table."));
    16971698        }
    1698         paranoid_free(tmp);
     1699        mr_free(tmp);
    16991700    }
    17001701    return (retval);
     
    17391740
    17401741    if (!strncmp(drive, RAID_DEVICE_STUB, strlen(RAID_DEVICE_STUB))) {
    1741         asprintf(&tmp, "Not partitioning %s - it is a virtual drive", drive);
     1742        mr_asprintf(&tmp, "Not partitioning %s - it is a virtual drive", drive);
    17421743        log_it(tmp);
    1743         paranoid_free(tmp);
     1744        mr_free(tmp);
    17441745        return (0);
    17451746    }
    17461747    partition_name = build_partition_name(drive, partno);
    17471748    if (partsize <= 0) {
    1748         asprintf(&tmp, "Partitioning device %s (max size)", partition_name);
     1749        mr_asprintf(&tmp, "Partitioning device %s (max size)", partition_name);
    17491750    } else {
    1750         asprintf(&tmp, "Partitioning device %s (%lld MB)", partition_name,
     1751        mr_asprintf(&tmp, "Partitioning device %s (%lld MB)", partition_name,
    17511752                (long long) partsize / 1024);
    17521753    }
    17531754    update_progress_form(tmp);
    17541755    log_it(tmp);
    1755     paranoid_free(tmp);
     1756    mr_free(tmp);
    17561757
    17571758    if (is_this_device_mounted(partition_name)) {
    1758         asprintf(&tmp, _("%s is mounted, and should not be partitioned"),
     1759        mr_asprintf(&tmp, _("%s is mounted, and should not be partitioned"),
    17591760                partition_name);
    1760         paranoid_free(partition_name);
     1761        mr_free(partition_name);
    17611762
    17621763        log_to_screen(tmp);
    1763         paranoid_free(tmp);
     1764        mr_free(tmp);
    17641765        return (1);
    17651766    }
    17661767
    17671768    p = (char *) strrchr(partition_name, '/');
    1768     asprintf(&program, "parted2fdisk %s >> %s 2>> %s", drive, MONDO_LOGFILE,
     1769    mr_asprintf(&program, "parted2fdisk %s >> %s 2>> %s", drive, MONDO_LOGFILE,
    17691770            MONDO_LOGFILE);
    17701771
     
    17731774    /* make it a primary/extended/logical */
    17741775    if (partno <= 4) {
    1775         asprintf(&output,"n\np\n%d\n", partno);
     1776        mr_asprintf(&output,"n\np\n%d\n", partno);
    17761777    } else {
    17771778        /* MBR needs an extended partition if more than 4 partitions */
     
    17821783                        (_
    17831784                         ("You need to leave at least one partition free, for 'extended/logical'"));
    1784                     paranoid_free(partition_name);
    1785                     paranoid_free(program);
    1786 
    1787                     paranoid_free(output);
     1785                    mr_free(partition_name);
     1786                    mr_free(program);
     1787
     1788                    mr_free(output);
    17881789                    return (1);
    17891790                } else {
    1790                     asprintf(&output,"n\ne\n%d\n\n\n",prev_partno + 1);
     1791                    mr_asprintf(&output,"n\ne\n%d\n\n\n",prev_partno + 1);
    17911792                }
    17921793            }
    1793             asprintf(&tmp,"%sn\nl\n",output);
    1794             paranoid_free(output);
     1794            mr_asprintf(&tmp,"%sn\nl\n",output);
     1795            mr_free(output);
    17951796            output = tmp;
    17961797        } else {
    17971798            /* GPT allows more than 4 primary partitions */
    1798             asprintf(&output,"n\np\n%d\n",partno);
    1799         }
    1800     }
    1801     paranoid_free(part_table_fmt);
     1799            mr_asprintf(&output,"n\np\n%d\n",partno);
     1800        }
     1801    }
     1802    mr_free(part_table_fmt);
    18021803    /*start block (ENTER for next free blk */
    1803     asprintf(&tmp,"%s\n",output);
    1804     paranoid_free(output);
     1804    mr_asprintf(&tmp,"%s\n",output);
     1805    mr_free(output);
    18051806    output = tmp;
    18061807
     
    18101811            partsize += 512;
    18111812        }
    1812         asprintf(&tmp,"%s+%lldK", output,  (long long) (partsize));
    1813         paranoid_free(output);
     1813        mr_asprintf(&tmp,"%s+%lldK", output,  (long long) (partsize));
     1814        mr_free(output);
    18141815        output = tmp;
    18151816    }
    1816     asprintf(&tmp,"%s\n",output);
    1817     paranoid_free(output);
     1817    mr_asprintf(&tmp,"%s\n",output);
     1818    mr_free(output);
    18181819    output = tmp;
    18191820#if 0
    18201821/*
    18211822#endif
    1822     asprintf(&tmp,"PARTSIZE = +%ld",(long)partsize);
     1823    mr_asprintf(&tmp,"PARTSIZE = +%ld",(long)partsize);
    18231824    log_it(tmp);
    1824     paranoid_free(tmp);
     1825    mr_free(tmp);
    18251826
    18261827    log_it("---fdisk command---");
     
    18451846                    partno);
    18461847        }
    1847         paranoid_free(tmp);
     1848        mr_free(tmp);
    18481849
    18491850        if (!retval) {
     
    18641865        }
    18651866    } else {
    1866         asprintf(&tmp,"%sw\n\n",output);
    1867         paranoid_free(output);
     1867        mr_asprintf(&tmp,"%sw\n\n",output);
     1868        mr_free(output);
    18681869        output = tmp;
    18691870
     
    18851886                                 format, -1);
    18861887            if (res) {
    1887                 asprintf(&tmp, "Failed to vacuum-pack %s", partition_name);
     1888                mr_asprintf(&tmp, "Failed to vacuum-pack %s", partition_name);
    18881889                log_it(tmp);
    1889                 paranoid_free(tmp);
     1890                mr_free(tmp);
    18901891
    18911892                retval++;
     
    18991900                                   partsize);
    19001901            if (retval) {
    1901                 asprintf(&tmp, "Partitioned %s but failed to set its type",
     1902                mr_asprintf(&tmp, "Partitioned %s but failed to set its type",
    19021903                        partition_name);
    19031904                log_it(tmp);
    1904                 paranoid_free(tmp);
     1905                mr_free(tmp);
    19051906            } else {
    19061907                if (partsize > 0) {
    1907                     asprintf(&tmp, "Partition %s created+configured OK",
     1908                    mr_asprintf(&tmp, "Partition %s created+configured OK",
    19081909                            partition_name);
    19091910                    log_to_screen(tmp);
    1910                     paranoid_free(tmp);
     1911                    mr_free(tmp);
    19111912                } else {
    19121913                    log_it("Returning from a successful vacuum-pack");
     
    19141915            }
    19151916        } else {
    1916             asprintf(&tmp, "Failed to partition %s", partition_name);
     1917            mr_asprintf(&tmp, "Failed to partition %s", partition_name);
    19171918            if (partsize > 0) {
    19181919                log_to_screen(tmp);
     
    19201921                log_it(tmp);
    19211922            }
    1922             paranoid_free(tmp);
     1923            mr_free(tmp);
    19231924            retval++;
    19241925        }
     
    19261927    g_current_progress++;
    19271928    log_it("partition_device() --- leaving");
    1928     paranoid_free(partition_name);
    1929     paranoid_free(program);
    1930     paranoid_free(output);
     1929    mr_free(partition_name);
     1930    mr_free(program);
     1931    mr_free(output);
    19311932    return (retval);
    19321933}
     
    20142015    system("clear");
    20152016    newtResume();
    2016     paranoid_free(drivelist);
     2017    mr_free(drivelist);
    20172018    return (retval);
    20182019}
     
    20582059    p = (char *) strrchr(partition, '/');
    20592060    if (strcmp(format, "swap") == 0) {
    2060         asprintf(&partcode, "82");
     2061        mr_asprintf(&partcode, "82");
    20612062    } else if (strcmp(format, "vfat") == 0) {
    20622063        if (partsize / 1024 > 8192) {
    2063             asprintf(&partcode, "c");
     2064            mr_asprintf(&partcode, "c");
    20642065        } else {
    2065             asprintf(&partcode, "b");
     2066            mr_asprintf(&partcode, "b");
    20662067        }
    20672068    } else if (strcmp(format, "ext2") == 0
     
    20692070               || strcmp(format, "ext3") == 0 || strcmp(format, "xfs") == 0
    20702071               || strcmp(format, "jfs") == 0) {
    2071         asprintf(&partcode, "83");
     2072        mr_asprintf(&partcode, "83");
    20722073    } else if (strcmp(format, "minix") == 0) {
    2073         asprintf(&partcode, "81");
     2074        mr_asprintf(&partcode, "81");
    20742075    } else if (strcmp(format, "raid") == 0) {
    2075         asprintf(&partcode, "fd");
     2076        mr_asprintf(&partcode, "fd");
    20762077    } else if ((strcmp(format, "ufs") == 0)
    20772078               || (strcmp(format, "ffs") == 0)) {   /* raid autodetect */
    2078         asprintf(&partcode, "a5");
     2079        mr_asprintf(&partcode, "a5");
    20792080    } else if (strcmp(format, "lvm") == 0) {
    2080         asprintf(&partcode, "8e");
     2081        mr_asprintf(&partcode, "8e");
    20812082    } else if (format[0] == '\0') { /* LVM physical partition */
    2082         asprintf(&partcode, "%s", "");
     2083        mr_asprintf(&partcode, "%s", "");
    20832084    } else if (strlen(format) >= 1 && strlen(format) <= 2) {
    2084         asprintf(&partcode, format);
     2085        mr_asprintf(&partcode, format);
    20852086    } else {
    20862087        /* probably an image */
    2087         asprintf(&tmp,
     2088        mr_asprintf(&tmp,
    20882089                "Unknown format ('%s') - using supplied string anyway",
    20892090                format);
    20902091        mvaddstr_and_log_it(g_currentY++, 0, tmp);
    2091         paranoid_free(tmp);
     2092        mr_free(tmp);
    20922093#ifdef __FreeBSD__
    2093         asprintf(&partcode, format);    // was a5
     2094        mr_asprintf(&partcode, format); // was a5
    20942095#else
    2095         asprintf(&partcode, format);    // was 83
    2096 #endif
    2097     }
    2098     asprintf(&tmp, "Setting %s's type to %s (%s)", partition, format,
     2096        mr_asprintf(&partcode, format); // was 83
     2097#endif
     2098    }
     2099    mr_asprintf(&tmp, "Setting %s's type to %s (%s)", partition, format,
    20992100            partcode);
    2100     paranoid_free(partition);
     2101    mr_free(partition);
    21012102
    21022103    log_msg(1, tmp);
    2103     paranoid_free(tmp);
     2104    mr_free(tmp);
    21042105    if (partcode[0] != '\0' && strcmp(partcode, "83")) {    /* no need to set type if 83: 83 is default */
    21052106
     
    21112112                || strstr(tmp1, " (1-4)")) {
    21122113                log_msg(5, "Specifying partno (%d) - yay", partno);
    2113                 asprintf(&tmp, "%d\n", partno);
     2114                mr_asprintf(&tmp, "%d\n", partno);
    21142115                fput_string_one_char_at_a_time(pout_to_fdisk, tmp);
    2115                 paranoid_free(tmp);
    2116                 paranoid_free(tmp1);
     2116                mr_free(tmp);
     2117                mr_free(tmp1);
    21172118                tmp1 = last_line_of_file(FDISK_LOG);
    21182119                log_msg(5, "A - last line = '%s'", tmp1);
    21192120            }
    2120             paranoid_free(tmp1);
    2121 
    2122             asprintf(&tmp, "%s\n", partcode);
     2121            mr_free(tmp1);
     2122
     2123            mr_asprintf(&tmp, "%s\n", partcode);
    21232124            fput_string_one_char_at_a_time(pout_to_fdisk, tmp);
    2124             paranoid_free(tmp);
     2125            mr_free(tmp);
    21252126            tmp1 = last_line_of_file(FDISK_LOG);
    21262127            log_msg(5, "B - last line = '%s'",tmp1);
    2127             paranoid_free(tmp1);
     2128            mr_free(tmp1);
    21282129
    21292130            fput_string_one_char_at_a_time(pout_to_fdisk, "\n");
    21302131            tmp1 = last_line_of_file(FDISK_LOG);
    21312132            log_msg(5, "C - last line = '%s'",tmp1);
    2132             paranoid_free(tmp1);
     2133            mr_free(tmp1);
    21332134
    21342135            tmp = last_line_of_file(FDISK_LOG);
     
    21382139                fput_string_one_char_at_a_time(pout_to_fdisk, "\n");
    21392140            }
    2140             paranoid_free(tmp);
     2141            mr_free(tmp);
    21412142            fput_string_one_char_at_a_time(pout_to_fdisk, "p\n");
    21422143        } else {
    2143             asprintf(&output, "t\n%d\n%s\nw\n", partno, partcode);
    2144             asprintf(&command, "parted2fdisk %s >> %s 2>> %s", drive,
     2144            mr_asprintf(&output, "t\n%d\n%s\nw\n", partno, partcode);
     2145            mr_asprintf(&command, "parted2fdisk %s >> %s 2>> %s", drive,
    21452146                    MONDO_LOGFILE, MONDO_LOGFILE);
    21462147            log_msg(5, "output = '%s'", output);
     
    21562157                paranoid_pclose(fout);
    21572158            }
    2158             paranoid_free(command);
    2159             paranoid_free(output);
     2159            mr_free(command);
     2160            mr_free(output);
    21602161        }
    21612162        /* BERLIOS: Useless as command not initialized in all cases
     
    21652166        */
    21662167    }
    2167     paranoid_free(partcode);
     2168    mr_free(partcode);
    21682169
    21692170
     
    21902191        return 1;
    21912192    }
    2192     asprintf(&program, "vinum start -f %s", raid_device);
     2193    mr_asprintf(&program, "vinum start -f %s", raid_device);
    21932194#else
    2194     asprintf(&program, "raidstart %s", raid_device);
     2195    mr_asprintf(&program, "raidstart %s", raid_device);
    21952196#endif
    21962197    log_msg(1, "program = %s", program);
     
    21992200        fprintf(g_fprep, "%s\n", program);
    22002201    }
    2201     paranoid_free(program);
     2202    mr_free(program);
    22022203
    22032204    if (res) {
     
    22342235        return 1;
    22352236    }
    2236     asprintf(&program, "vinum stop -f %s", raid_device);
     2237    mr_asprintf(&program, "vinum stop -f %s", raid_device);
    22372238#else
    22382239    // use raidstop if it exists, otherwise use mdadm
    22392240    if (run_program_and_log_output("which raidstop", FALSE)) {
    2240         asprintf(&program, "mdadm -S %s", raid_device);
     2241        mr_asprintf(&program, "mdadm -S %s", raid_device);
    22412242    } else {
    2242         asprintf(&program, "raidstop %s", raid_device);
     2243        mr_asprintf(&program, "raidstop %s", raid_device);
    22432244    }
    22442245#endif
     
    22482249        fprintf(g_fprep, "%s\n", program);
    22492250    }
    2250     paranoid_free(program);
     2251    mr_free(program);
    22512252
    22522253    if (res) {
     
    23222323            return (1);
    23232324        }
    2324         for (getline(&incoming, &n, fin); !feof(fin);
    2325              getline(&incoming, &n, fin)) {
     2325        for (mr_getline(&incoming, &n, fin); !feof(fin);
     2326             mr_getline(&incoming, &n, fin)) {
    23262327            retval += stop_raid_device(incoming);
    23272328        }
     
    23322333            return (1);
    23332334        }
    2334         for (getline(&incoming, &n, fin); !feof(fin);
    2335              getline(&incoming, &n, fin)) {
     2335        for (mr_getline(&incoming, &n, fin); !feof(fin);
     2336             mr_getline(&incoming, &n, fin)) {
    23362337            for (p = incoming;
    23372338                 *p != '\0' && (*p != 'm' || *(p + 1) != 'd'
    23382339                                || !isdigit(*(p + 2))); p++);
    23392340            if (*p != '\0') {
    2340                 asprintf(&dev, "/dev/%s", p);
     2341                mr_asprintf(&dev, "/dev/%s", p);
    23412342                /* BERLIOS : 32 Hard coded value */
    23422343                for (p = dev; *p > 32; p++);
    23432344                *p = '\0';
    23442345                res = stop_raid_device(dev);
    2345                 paranoid_free(dev);
    2346             }
    2347         }
    2348 #endif
    2349         paranoid_free(incoming);
     2346                mr_free(dev);
     2347            }
     2348        }
     2349#endif
     2350        mr_free(incoming);
    23502351    }
    23512352    paranoid_fclose(fin);
     
    23812382    if (strcmp(format, "swap") == 0) {
    23822383#ifdef __FreeBSD__
    2383         asprintf(&program, "true");
     2384        mr_asprintf(&program, "true");
    23842385#else
    2385         asprintf(&program, "mkswap");
     2386        mr_asprintf(&program, "mkswap");
    23862387#endif
    23872388    } else if (strcmp(format, "vfat") == 0) {
    2388         asprintf(&program, "format-and-kludge-vfat");
     2389        mr_asprintf(&program, "format-and-kludge-vfat");
    23892390#ifndef __FreeBSD__
    23902391    } else if (strcmp(format, "reiserfs") == 0) {
    2391         asprintf(&program, "mkreiserfs -ff");
     2392        mr_asprintf(&program, "mkreiserfs -ff");
    23922393    } else if (strcmp(format, "xfs") == 0) {
    2393         asprintf(&program, "mkfs.xfs -f -q");
     2394        mr_asprintf(&program, "mkfs.xfs -f -q");
    23942395    } else if (strcmp(format, "jfs") == 0) {
    2395         asprintf(&program, "mkfs.jfs");
     2396        mr_asprintf(&program, "mkfs.jfs");
    23962397    } else if (strcmp(format, "ext3") == 0) {
    2397         asprintf(&program, "mkfs -t ext2 -F -j -q");
     2398        mr_asprintf(&program, "mkfs -t ext2 -F -j -q");
    23982399    } else if (strcmp(format, "minix") == 0) {
    2399         asprintf(&program, "mkfs.minix");
     2400        mr_asprintf(&program, "mkfs.minix");
    24002401#endif
    24012402    } else if (strcmp(format, "ext2") == 0) {
    2402         asprintf(&program, "mke2fs -F -q");
     2403        mr_asprintf(&program, "mke2fs -F -q");
    24032404    } else {
    24042405#ifdef __FreeBSD__
    2405         asprintf(&program, "newfs_%s", format);
     2406        mr_asprintf(&program, "newfs_%s", format);
    24062407#else
    2407         asprintf(&program, "mkfs -t %s -c", format);    // -c checks for bad blocks
    2408 #endif
    2409         asprintf(&tmp, "Unknown format (%s) - assuming '%s' will do", format,
     2408        mr_asprintf(&program, "mkfs -t %s -c", format); // -c checks for bad blocks
     2409#endif
     2410        mr_asprintf(&tmp, "Unknown format (%s) - assuming '%s' will do", format,
    24102411                program);
    24112412        log_it(tmp);
    2412         paranoid_free(tmp);
     2413        mr_free(tmp);
    24132414        res = 0;
    24142415    }
     
    24482449            original_size_of_drive += mountlist->el[partno].size;
    24492450        } else {
    2450             asprintf(&tmp, "Skipping %s", mountlist->el[partno].device);
     2451            mr_asprintf(&tmp, "Skipping %s", mountlist->el[partno].device);
    24512452//                      log_to_screen(tmp);
    2452             paranoid_free(tmp);
     2453            mr_free(tmp);
    24532454        }
    24542455    }
     
    25122513        return;
    25132514    }
    2514     asprintf(&tmp, _("Expanding entries to suit drive %s (%ld MB)"),
     2515    mr_asprintf(&tmp, _("Expanding entries to suit drive %s (%ld MB)"),
    25152516            drive_name, current_size_of_drive);
    25162517    log_to_screen(tmp);
    2517     paranoid_free(tmp);
     2518    mr_free(tmp);
    25182519
    25192520    drivemntlist = malloc(sizeof(struct mountlist_reference));
     
    25322533
    25332534    if (original_size_of_drive <= 0) {
    2534         asprintf(&tmp, _("Cannot resize %s's entries. Drive not found."),
     2535        mr_asprintf(&tmp, _("Cannot resize %s's entries. Drive not found."),
    25352536                drive_name);
    25362537        log_to_screen(tmp);
    2537         paranoid_free(tmp);
     2538        mr_free(tmp);
    25382539        return;
    25392540    }
    25402541    factor =
    25412542        (float) (current_size_of_drive) / (float) (original_size_of_drive);
    2542     asprintf(&tmp, "Disk %s was %ld MB; is now %ld MB; factor = %f",
     2543    mr_asprintf(&tmp, "Disk %s was %ld MB; is now %ld MB; factor = %f",
    25432544            drive_name, original_size_of_drive, current_size_of_drive,
    25442545            factor);
    25452546    log_to_screen(tmp);
    2546     paranoid_free(tmp);
     2547    mr_free(tmp);
    25472548
    25482549    lastpart = drivemntlist->entries - 1;
     
    25632564            newsizL = (long) new_size;
    25642565        }
    2565         asprintf(&tmp, _("Changing %s from %lld KB to %ld KB"),
     2566        mr_asprintf(&tmp, _("Changing %s from %lld KB to %ld KB"),
    25662567                drivemntlist->el[partno]->device,
    25672568                drivemntlist->el[partno]->size, newsizL);
    25682569        log_to_screen(tmp);
    2569         paranoid_free(tmp);
     2570        mr_free(tmp);
    25702571        drivemntlist->el[partno]->size = newsizL;
    25712572    }
    25722573    final_size = get_phys_size_of_drive(drive_name);
    2573     asprintf(&tmp, _("final_size = %ld MB"), final_size);
     2574    mr_asprintf(&tmp, _("final_size = %ld MB"), final_size);
    25742575    log_to_screen(tmp);
    2575     paranoid_free(tmp);
     2576    mr_free(tmp);
    25762577}
    25772578
     
    26132614    }
    26142615    log_to_screen(_("Mountlist adjusted to suit current hard drive(s)"));
    2615     paranoid_free(drivelist);
     2616    mr_free(drivelist);
    26162617}
    26172618
     
    26372638    log_msg(1, "Creating list of partitions for drive %s", drive_name);
    26382639
    2639     asprintf(&tmp_drive_name,drive_name);
     2640    mr_asprintf(&tmp_drive_name,drive_name);
    26402641    if (!tmp_drive_name)
    26412642        fatal_error("Out of memory");
     
    26572658        }
    26582659    }
    2659     paranoid_free(tmp_drive_name);
     2660    mr_free(tmp_drive_name);
    26602661}
    26612662
  • trunk/mondo/src/mondorestore/mondo-restore.c

    r851 r900  
    2323#include <pthread.h>
    2424#endif
     25#include "mr_mem.h"
    2526
    2627extern void twenty_seconds_til_yikes(void);
     
    160161    assert(raidlist != NULL);
    161162    if (!bkpinfo->disaster_recovery) {
    162         paranoid_alloc(g_mountlist_fname, "/tmp/mountlist.txt");
     163        mr_allocstr(g_mountlist_fname, "/tmp/mountlist.txt");
    163164        log_msg(2, "I guess you're testing edit_mountlist()");
    164165    }
     
    274275        }
    275276        if (g_ISO_restore_mode) {
    276             asprintf(&tmp, "umount %s", bkpinfo->isodir);
     277            mr_asprintf(&tmp, "umount %s", bkpinfo->isodir);
    277278            run_program_and_log_output(tmp, FALSE);
    278             paranoid_free(tmp);
     279            mr_free(tmp);
    279280        }
    280281        paranoid_MR_finish(0);
     
    386387            save_mountlist_to_disk(mountlist, g_mountlist_fname);
    387388            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);
    390391
    391392            res = system(tmp);
    392             paranoid_free(tmp);
     393            mr_free(tmp);
    393394            load_mountlist(mountlist, g_mountlist_fname);
    394395        } else {
     
    500501             ask_me_yes_or_no
    501502             (_("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);
    503504        for (done = FALSE; !done;) {
    504505            unlink("/tmp/filelist.full");
     
    514515                    if (!strcmp(bkpinfo->restore_path, "/")) {
    515516                        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);
    517518                            goto gotos_suck;
    518519                        }
    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 :)
    520521                    }
    521522                    log_msg(1, "Restoring subset");
     
    523524                    free_filelist(filelist);
    524525                } else {
    525                     paranoid_alloc(bkpinfo->restore_path,old_restpath);
     526                    mr_allocstr(bkpinfo->restore_path,old_restpath);
    526527                    free_filelist(filelist);
    527528                }
     
    534535            }
    535536        }
    536         paranoid_free(old_restpath);
     537        mr_free(old_restpath);
    537538    } else {
    538539        mvaddstr_and_log_it(g_currentY++,
     
    567568                            ("Using e2label to label your ext2,3 partitions"));
    568569        if (does_file_exist("/tmp/fstab.new")) {
    569             asprintf(&fstab_fname, "/tmp/fstab.new");
     570            mr_asprintf(&fstab_fname, "/tmp/fstab.new");
    570571        } else {
    571             asprintf(&fstab_fname, "/tmp/fstab");
    572         }
    573         asprintf(&tmp,
     572            mr_asprintf(&fstab_fname, "/tmp/fstab");
     573        }
     574        mr_asprintf(&tmp,
    574575                "label-partitions-as-necessary %s < %s >> %s 2>> %s",
    575576                g_mountlist_fname, fstab_fname, MONDO_LOGFILE,
    576577                MONDO_LOGFILE);
    577         paranoid_free(fstab_fname);
     578        mr_free(fstab_fname);
    578579
    579580        res = system(tmp);
    580         paranoid_free(tmp);
     581        mr_free(tmp);
    581582        if (res) {
    582583            log_to_screen
     
    679680            (strstr(tmp1,"RESTORE") == NULL)) {
    680681                /* -H option */
    681                 asprintf(&tmp,
     682                mr_asprintf(&tmp,
    682683                    _
    683684                    (" 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."));
    684685                popup_and_OK(tmp);
    685                 paranoid_free(tmp);
    686         }
    687         paranoid_free(tmp1);
     686                mr_free(tmp);
     687        }
     688        mr_free(tmp1);
    688689
    689690        log_to_screen(_
     
    739740        resize_mountlist_proportionately_to_suit_new_drives(mountlist);
    740741    }
    741     paranoid_free(tmp);
     742    mr_free(tmp);
    742743
    743744    if (!evaluate_mountlist(mountlist, tmpA, tmpB, tmpC)) {
    744         asprintf(&tmp,
     745        mr_asprintf(&tmp,
    745746                _
    746747                ("Mountlist analyzed. Result: \"%s %s %s\" Switch to Interactive Mode?"),
    747748                tmpA, tmpB, tmpC);
    748749        if (ask_me_yes_or_no(tmp)) {
    749             paranoid_free(tmp);
     750            mr_free(tmp);
    750751            retval = interactive_mode(bkpinfo, mountlist, raidlist);
    751752            goto after_the_nuke;
    752753        } else {
    753             paranoid_free(tmp);
     754            mr_free(tmp);
    754755            fatal_error("Nuke Mode aborted. ");
    755756        }
     
    787788                }
    788789            }
    789             paranoid_free(tmp);
     790            mr_free(tmp);
    790791
    791792            retval += res;
     
    840841                        ("Using e2label to label your ext2,3 partitions"));
    841842
    842     asprintf(&tmp, "label-partitions-as-necessary %s < /tmp/fstab",
     843    mr_asprintf(&tmp, "label-partitions-as-necessary %s < /tmp/fstab",
    843844            g_mountlist_fname);
    844845    res = run_program_and_log_output(tmp, TRUE);
    845     paranoid_free(tmp);
     846    mr_free(tmp);
    846847
    847848    if (res) {
     
    916917    }
    917918
    918     paranoid_alloc(bkpinfo->restore_path, "/");
     919    mr_allocstr(bkpinfo->restore_path, "/");
    919920    if (!g_restoring_live_from_cd) {
    920921        popup_and_OK
     
    945946    if (filelist) {
    946947        save_filelist(filelist, "/tmp/selected-files.txt");
    947         asprintf(&old_restpath,bkpinfo->restore_path);
     948        mr_asprintf(&old_restpath,bkpinfo->restore_path);
    948949        if (popup_and_get_string(_("Restore path"),
    949950                                 _("Restore files to where? )"),
     
    953954        }
    954955        free_filelist(filelist);
    955         paranoid_alloc(bkpinfo->restore_path,old_restpath);
     956        mr_allocstr(bkpinfo->restore_path,old_restpath);
    956957    }
    957958    if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
     
    10341035    if (!(fin = fopen(tmp,"r"))) {
    10351036        log_to_screen(_("Cannot even open bigfile's info file"));
    1036         paranoid_free(tmp);
     1037        mr_free(tmp);
    10371038        return (pathname_of_last_file_restored);
    10381039    }
    1039     paranoid_free(tmp);
     1040    mr_free(tmp);
    10401041
    10411042    memset((void *) &biggiestruct, 0, sizeof(biggiestruct));
     
    10471048    paranoid_fclose(fin);
    10481049
    1049     asprintf(&checksum, biggiestruct.checksum);
     1050    mr_asprintf(&checksum, biggiestruct.checksum);
    10501051
    10511052    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",
    10531054                bigfileno + 1);
    10541055        log_msg(3, tmp);
    1055         paranoid_free(tmp);
     1056        mr_free(tmp);
    10561057        /* BERLIOS : Useless ???
    10571058        p = checksum;
    10581059        */
    10591060    }
    1060     paranoid_free(checksum);
     1061    mr_free(checksum);
    10611062
    10621063    if (!strncmp(biggiestruct.filename, "/dev/", 5))    // Whether NTFS or not :)
    10631064    {
    1064         asprintf(&outfile_fname, biggiestruct.filename);
     1065        mr_asprintf(&outfile_fname, biggiestruct.filename);
    10651066    } else {
    1066         asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path,
     1067        mr_asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path,
    10671068                biggiestruct.filename);
    10681069    }
     
    11011102                "Calling ntfsclone in background because %s is an NTFS /dev entry",
    11021103                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),
    11041105                (int) (random() % 32768));
    11051106        mkfifo(ntfsprog_fifo, 0x770);
     
    11251126        }
    11261127        // BERLIOS: Is it the right place ??
    1127         paranoid_free(ntfsprog_fifo);
     1128        mr_free(ntfsprog_fifo);
    11281129    } else {
    11291130        use_ntfsprog_hack = FALSE;
     
    11351136    }
    11361137
    1137     asprintf(&tmp, "Reassembling big file %ld (%s)", bigfileno + 1,
     1138    mr_asprintf(&tmp, "Reassembling big file %ld (%s)", bigfileno + 1,
    11381139            outfile_fname);
    11391140    log_msg(2, tmp);
    1140     paranoid_free(tmp);
     1141    mr_free(tmp);
    11411142
    11421143    /*
     
    11461147     */
    11471148
    1148     asprintf(&pathname_of_last_file_restored, biggiestruct.filename);
     1149    mr_asprintf(&pathname_of_last_file_restored, biggiestruct.filename);
    11491150
    11501151    log_msg(3, "file_to_openout = %s", file_to_openout);
     
    11651166                    g_current_media_number);
    11661167            g_current_media_number++;
    1167             asprintf(&tmp3,
     1168            mr_asprintf(&tmp3,
    11681169                    "Asking for %s #%d so that I may read slice #%ld\n",
    11691170                    bkpinfo->backup_media_string,
    11701171                    g_current_media_number, sliceno);
    11711172            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"),
    11751176                    bkpinfo->backup_media_string,
    11761177                    g_current_media_number);
    11771178            log_to_screen(tmp3);
    1178             paranoid_free(tmp3);
     1179            mr_free(tmp3);
    11791180
    11801181            insist_on_this_cd_number(bkpinfo, g_current_media_number);
     
    11891190            } else {
    11901191                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);
    11921193                } 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);
    11941195                } else if (does_file_exist(tmp)) {
    1195                         asprintf(&bzip2_command, "%s", "");
     1196                        mr_asprintf(&bzip2_command, "%s", "");
    11961197                } else {
    11971198                    log_to_screen(_("OK, that's pretty fsck0red..."));
     
    12011202
    12021203            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 ",
    12061207                    bkpinfo->backup_media_string,
    12071208                    g_current_media_number, bigfileno + 1, sliceno);
     
    12121213                update_progress_form(tmp3);
    12131214            }
    1214             paranoid_free(tmp3);
     1215            mr_free(tmp3);
    12151216
    12161217            if (!(fbzip2 = popen(bzip2_command, "r"))) {
    12171218                fatal_error("Can't run popen command");
    12181219            }
    1219             paranoid_free(bzip2_command);
     1220            mr_free(bzip2_command);
    12201221
    12211222            while (!feof(fbzip2)) {
     
    12231224                if (siz > 0) {
    12241225                    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);
    12261227                    log_it(sz_msg);
    1227                     paranoid_free(sz_msg);
     1228                    mr_free(sz_msg);
    12281229                }
    12291230            }
     
    12341235            g_current_progress++;
    12351236        }
    1236         paranoid_free(tmp);
    1237         paranoid_free(tmp1);
    1238         paranoid_free(tmp2);
     1237        mr_free(tmp);
     1238        mr_free(tmp1);
     1239        mr_free(tmp2);
    12391240    }
    12401241    paranoid_fclose(fout);
     
    12431244    if (use_ntfsprog_hack) {
    12441245        log_msg(3, "Waiting for ntfsclone to finish");
    1245         asprintf(&tmp,
     1246        mr_asprintf(&tmp,
    12461247                " ps | grep \" ntfsclone \" | grep -v grep > /dev/null 2> /dev/null");
    12471248        while (system(tmp) == 0) {
    12481249            sleep(1);
    12491250        }
    1250         paranoid_free(tmp);
     1251        mr_free(tmp);
    12511252        log_it("OK, ntfsclone has really finished");
    12521253    }
     
    12601261        utime(outfile_fname, ubuf);
    12611262    }
    1262     paranoid_free(outfile_fname);
    1263     paranoid_free(bigblk);
     1263    mr_free(outfile_fname);
     1264    mr_free(bigblk);
    12641265
    12651266    return (pathname_of_last_file_restored);
     
    13291330    }
    13301331
    1331     asprintf(&pathname_of_last_file_restored, orig_bf_fname);
     1332    mr_asprintf(&pathname_of_last_file_restored, orig_bf_fname);
    13321333
    13331334    /* open out to biggiefile to be restored (or /dev/null if biggiefile is not to be restored) */
     
    13591360    if (use_ntfsprog) {
    13601361        g_loglevel = 4;
    1361         asprintf(&outfile_fname, orig_bf_fname);
     1362        mr_asprintf(&outfile_fname, orig_bf_fname);
    13621363        use_ntfsprog_hack = TRUE;
    13631364        log_msg(2,
    13641365                "Calling ntfsclone in background because %s is a /dev entry",
    13651366                outfile_fname);
    1366         asprintf(&ntfsprog_fifo, "%s/%d.%d.000",
     1367        mr_asprintf(&ntfsprog_fifo, "%s/%d.%d.000",
    13671368                bkpinfo->tmpdir,
    13681369                (int) (random() % 32768),
     
    13871388                    (long int) (pid));
    13881389        }
    1389         paranoid_free(ntfsprog_fifo);
     1390        mr_free(ntfsprog_fifo);
    13901391    } else {
    13911392        if (!strncmp(orig_bf_fname, "/dev/", 5))    // non-NTFS partition
    13921393        {
    1393             asprintf(&outfile_fname, orig_bf_fname);
     1394            mr_asprintf(&outfile_fname, orig_bf_fname);
    13941395        } else                  // biggiefile
    13951396        {
    1396             asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path,
     1397            mr_asprintf(&outfile_fname, "%s/%s", bkpinfo->restore_path,
    13971398                    orig_bf_fname);
    13981399        }
     
    14031404            make_hole_for_file(outfile_fname);
    14041405        }
    1405         asprintf(&tmp1, "Reassembling big file %ld (%s)",
     1406        mr_asprintf(&tmp1, "Reassembling big file %ld (%s)",
    14061407                biggiefile_number + 1, orig_bf_fname);
    14071408        log_msg(2, tmp1);
    1408         paranoid_free(tmp1);
     1409        mr_free(tmp1);
    14091410    }
    14101411
    14111412    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");
    14141415    }
    14151416
    14161417    if (bkpinfo->zip_exe == NULL) {
    1417         asprintf(&command, "cat > \"%s\"", file_to_openout);
     1418        mr_asprintf(&command, "cat > \"%s\"", file_to_openout);
    14181419    } else {
    1419         asprintf(&command, "%s -dc > \"%s\" 2>> %s", bkpinfo->zip_exe,
     1420        mr_asprintf(&command, "%s -dc > \"%s\" 2>> %s", bkpinfo->zip_exe,
    14201421                file_to_openout, MONDO_LOGFILE);
    14211422    }
    1422     asprintf(&tmp1, "Pipe command = '%s'", command);
     1423    mr_asprintf(&tmp1, "Pipe command = '%s'", command);
    14231424    log_msg(3, tmp1);
    1424     paranoid_free(tmp1);
     1425    mr_free(tmp1);
    14251426
    14261427    /* restore biggiefile, one slice at a time */
     
    14281429        fatal_error("Cannot pipe out");
    14291430    }
    1430     paranoid_free(command);
     1431    mr_free(command);
    14311432
    14321433    for (res = read_header_block_from_stream(&slice_siz, tmp, &ctrl_chr);
     
    14361437            wrong_marker(BLK_START_AN_AFIO_OR_SLICE, ctrl_chr);
    14371438        }
    1438         asprintf(&tmp1, "Working on file #%ld, slice #%ld    ",
     1439        mr_asprintf(&tmp1, "Working on file #%ld, slice #%ld    ",
    14391440                biggiefile_number + 1, current_slice_number);
    14401441        log_msg(2, tmp1);
     
    14461447        strip_spaces(tmp1);
    14471448        update_progress_form(tmp1);
    1448         paranoid_free(tmp1);
     1449        mr_free(tmp1);
    14491450
    14501451        if (current_slice_number == 0) {
     
    14771478        g_current_progress++;
    14781479    }
    1479     paranoid_free(tmp);
     1480    mr_free(tmp);
    14801481    paranoid_pclose(pout);
    14811482
     
    14851486    if (use_ntfsprog_hack) {
    14861487        log_msg(3, "Waiting for ntfsclone to finish");
    1487         asprintf(&tmp,
     1488        mr_asprintf(&tmp,
    14881489                " ps | grep \" ntfsclone \" | grep -v grep > /dev/null 2> /dev/null");
    14891490        while (system(tmp) == 0) {
    14901491            sleep(1);
    14911492        }   
    1492         paranoid_free(tmp);
     1493        mr_free(tmp);
    14931494        log_msg(3, "OK, ntfsclone has really finished");
    14941495    }
     
    15051506    }
    15061507
    1507     paranoid_free(outfile_fname);
     1508    mr_free(outfile_fname);
    15081509    g_loglevel = old_loglevel;
    15091510    return (pathname_of_last_file_restored);
     
    15511552    log_msg(5, "Entering");
    15521553    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);
    15541555    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",
    15581559            current_tarball_number);
    15591560    if (length_of_file(filelist_name) <= 2) {
     
    15721573        log_msg(3, "length_of_file(%s) = %llu", tarball_fname,
    15731574                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)",
    15751576                current_tarball_number);
    15761577        log_to_screen(tmp);
    1577         paranoid_free(tmp);
     1578        mr_free(tmp);
    15781579        retval = 1;
    15791580        log_msg(5, "Leaving");
     
    15821583
    15831584    if (filelist) {
    1584         asprintf(&filelist_subset_fname, "/tmp/filelist-subset-%ld.tmp",
     1585        mr_asprintf(&filelist_subset_fname, "/tmp/filelist-subset-%ld.tmp",
    15851586                current_tarball_number);
    15861587        if ((matches =
     
    15891590                                             use_star))
    15901591            <= 0) {
    1591             asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);
     1592            mr_asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);
    15921593            log_msg(1, tmp);
    1593             paranoid_free(tmp);
     1594            mr_free(tmp);
    15941595        } else {
    15951596            log_msg(3, "Saved fileset %ld's subset to %s",
    15961597                    current_tarball_number, filelist_subset_fname);
    15971598        }
    1598         asprintf(&tmp, "Tarball #%ld --- %ld matches",
     1599        mr_asprintf(&tmp, "Tarball #%ld --- %ld matches",
    15991600                current_tarball_number, matches);
    16001601        log_to_screen(tmp);
    1601         paranoid_free(tmp);
     1602        mr_free(tmp);
    16021603    } else {
    16031604        filelist_subset_fname = NULL;
    16041605    }
    1605     paranoid_free(filelist_name);
     1606    mr_free(filelist_name);
    16061607
    16071608    if (filelist == NULL || matches > 0) {
    1608         asprintf(&xattr_fname, XATTR_LIST_FNAME_RAW_SZ,
     1609        mr_asprintf(&xattr_fname, XATTR_LIST_FNAME_RAW_SZ,
    16091610                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",
    16111612                current_tarball_number);
    16121613        if (strstr(tarball_fname, ".bz2")) {
    1613             asprintf(&executable, "bzip2");
     1614            mr_asprintf(&executable, "bzip2");
    16141615        } else if (strstr(tarball_fname, ".lzo")) {
    1615             asprintf(&executable, "lzop");
     1616            mr_asprintf(&executable, "lzop");
    16161617        } else {
    16171618            executable = NULL;
     
    16191620
    16201621        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);
    16221623            if (run_program_and_log_output(tmp, FALSE)) {
    16231624                log_to_screen
     
    16261627                paranoid_MR_finish(1);
    16271628            }
    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);
    16331634        }
    16341635#ifdef __FreeBSD__
     
    16381639#endif
    16391640
    1640         asprintf(&temp_log, "/tmp/%d.%d", (int) (random() % 32768),
     1641        mr_asprintf(&temp_log, "/tmp/%d.%d", (int) (random() % 32768),
    16411642            (int) (random() % 32768));
    16421643
    16431644        if (use_star) {
    16441645            if (strstr(tarball_fname, ".bz2")) {
    1645                 asprintf(&tmp, " -bz");
     1646                mr_asprintf(&tmp, " -bz");
    16461647            } else {
    1647                 asprintf(&tmp, "%s", "");
    1648             }
    1649             asprintf(&command,
     1648                mr_asprintf(&tmp, "%s", "");
     1649            }
     1650            mr_asprintf(&command,
    16501651                    "star -x -force-remove -U " STAR_ACL_SZ
    16511652                    " errctl= file=%s %s 2>> %s >> %s", tarball_fname, tmp, temp_log, temp_log);
    1652             paranoid_free(tmp);
     1653            mr_free(tmp);
    16531654        } else {
    16541655            if (filelist_subset_fname != NULL) {
    1655                 asprintf(&command,
     1656                mr_asprintf(&command,
    16561657                        "afio -i -M 8m -b %ld -c %ld %s -w '%s' %s 2>> %s >> %s",
    16571658                        TAPE_BLOCK_SIZE,
     
    16601661                        tarball_fname, temp_log, temp_log);
    16611662            } else {
    1662                 asprintf(&command,
     1663                mr_asprintf(&command,
    16631664                        "afio -i -b %ld -c %ld -M 8m %s %s 2>> %s >> %s",
    16641665                        TAPE_BLOCK_SIZE,
     
    16661667            }
    16671668        }
    1668         paranoid_free(executable);
     1669        mr_free(executable);
    16691670
    16701671#undef BUFSIZE
     
    16801681            }
    16811682        }
    1682         paranoid_free(command);
     1683        mr_free(command);
    16831684
    16841685        if (res && length_of_file(temp_log) < 5) {
     
    17111712        }
    17121713        if (retval) {
    1713             asprintf(&command, "cat %s >> %s", temp_log, MONDO_LOGFILE);
     1714            mr_asprintf(&command, "cat %s >> %s", temp_log, MONDO_LOGFILE);
    17141715            system(command);
    1715             paranoid_free(command);
     1716            mr_free(command);
    17161717            log_msg(2, "Errors occurred while processing fileset #%d",
    17171718                    current_tarball_number);
     
    17201721        }
    17211722        unlink(xattr_fname);
    1722         paranoid_free(xattr_fname);
     1723        mr_free(xattr_fname);
    17231724    }
    17241725    if (does_file_exist("/PAUSE")) {
     
    17311732    unlink(temp_log);
    17321733
    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);
    17361737
    17371738    log_msg(5, "Leaving");
     
    17851786    /* to do it with a file... */
    17861787    use_star = (strstr(tarball_fname, ".star")) ? TRUE : FALSE;
    1787     asprintf(&tmp,
     1788    mr_asprintf(&tmp,
    17881789            "Restoring from fileset #%ld (%ld KB) on %s #%d",
    17891790            current_tarball_number, (long) size >> 10,
     
    17911792            g_current_media_number);
    17921793    log_msg(2, tmp);
    1793     paranoid_free(tmp);
     1794    mr_free(tmp);
    17941795    run_program_and_log_output("mkdir -p " MNT_RESTORING "/tmp", FALSE);
    17951796
     
    17991800   * in afio or someting; oh darn.. OK, use tmpfs :-)                         *
    18001801   ****************************************************************************/
    1801     asprintf(&afio_fname, "/tmp/tmpfs/archive.tmp.%ld",
     1802    mr_asprintf(&afio_fname, "/tmp/tmpfs/archive.tmp.%ld",
    18021803            current_tarball_number);
    1803     asprintf(&filelist_fname, "%s/filelist.%ld", bkpinfo->tmpdir,
     1804    mr_asprintf(&filelist_fname, "%s/filelist.%ld", bkpinfo->tmpdir,
    18041805            current_tarball_number);
    1805     asprintf(&filelist_subset_fname, "%s/filelist-subset-%ld.tmp",
     1806    mr_asprintf(&filelist_subset_fname, "%s/filelist-subset-%ld.tmp",
    18061807            bkpinfo->tmpdir, current_tarball_number);
    18071808    res = read_file_from_stream_to_file(bkpinfo, afio_fname, size);
     
    18141815    if (bkpinfo->compression_level != 0) {
    18151816        if (bkpinfo->use_star) {
    1816             asprintf(&executable, " -bz");
     1817            mr_asprintf(&executable, " -bz");
    18171818        } else {
    1818             asprintf(&executable, "-P %s -Z", bkpinfo->zip_exe);
     1819            mr_asprintf(&executable, "-P %s -Z", bkpinfo->zip_exe);
    18191820        }
    18201821    }
     
    18271828        if (strstr(tarball_fname, ".star.")) {
    18281829            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);
    18301831        } else {
    18311832            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,
    18331834                    executable, afio_fname, filelist_fname, MONDO_LOGFILE);
    18341835        }
     
    18371838            log_msg(4, "Warning - error occurred while retrieving TOC");
    18381839        }
    1839         paranoid_free(command);
     1840        mr_free(command);
    18401841        if ((matches =
    18411842             save_filelist_entries_in_common(filelist_fname, filelist,
     
    18471848                        current_tarball_number);
    18481849            }
    1849             asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);
     1850            mr_asprintf(&tmp, "Skipping fileset %ld", current_tarball_number);
    18501851            log_msg(2, tmp);
    1851             paranoid_free(tmp);
     1852            mr_free(tmp);
    18521853            restore_this_fileset = FALSE;
    18531854        } else {
     
    18591860    }
    18601861    unlink(filelist_fname);
    1861     paranoid_free(filelist_fname);
     1862    mr_free(filelist_fname);
    18621863
    18631864// Concoct the call to star/afio to restore files
     
    18651866        // star
    18661867        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,
    18681869                    filelist_subset_fname,MONDO_LOGFILE);
    18691870        } 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);
    18711872        }
    18721873    } else {
    18731874        // afio
    18741875        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);
    18761877        } 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);
    18811882
    18821883    // Call if IF there are files to restore (selectively/unconditionally)
     
    19051906        log_msg(1, "NOT CALLING '%s'", command);
    19061907    }
    1907     paranoid_free(command);
     1908    mr_free(command);
    19081909
    19091910    if (does_file_exist("/PAUSE") && current_tarball_number >= 50) {
     
    19151916    unlink(afio_fname);
    19161917
    1917     paranoid_free(filelist_subset_fname);
    1918     paranoid_free(afio_fname);
     1918    mr_free(filelist_subset_fname);
     1919    mr_free(afio_fname);
    19191920    return (retval);
    19201921}
     
    19521953    assert(bkpinfo != NULL);
    19531954
    1954     asprintf(&biggies_whose_EXATs_we_should_set,
     1955    mr_asprintf(&biggies_whose_EXATs_we_should_set,
    19551956            "%s/biggies-whose-EXATs-we-should-set", bkpinfo->tmpdir);
    19561957    if (!(fbw = fopen(biggies_whose_EXATs_we_should_set, "w"))) {
     
    19611962    read_cfg_var(g_mondo_cfg_file, "total-slices", tmp);
    19621963    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      "));
    19661967    mvaddstr_and_log_it(g_currentY, 0, tmp);
    1967     paranoid_free(tmp);
     1968    mr_free(tmp);
    19681969
    19691970    if (length_of_file(BIGGIELIST) < 6) {
     
    19771978        return (0);
    19781979    }
    1979     asprintf(&tmp, "OK, there are %ld biggiefiles in the archives",
     1980    mr_asprintf(&tmp, "OK, there are %ld biggiefiles in the archives",
    19801981            noof_biggiefiles);
    19811982    log_msg(2, tmp);
    1982     paranoid_free(tmp);
     1983    mr_free(tmp);
    19831984
    19841985    open_progress_form(_("Reassembling large files"),
     
    19981999            tmp1 = slice_fname(bigfileno + 1, 0, ARCHIVES_PATH, "");
    19992000            log_msg(3, "Slicename would have been %s", tmp1);
    2000             paranoid_free(tmp1);
     2001            mr_free(tmp1);
    20012002
    20022003            // I'm not positive 'just_changed_cds' is even necessary...
     
    20082009                insist_on_this_cd_number(bkpinfo,
    20092010                                         ++g_current_media_number);
    2010                 asprintf(&tmp, _("Restoring from %s #%d"),
     2011                mr_asprintf(&tmp, _("Restoring from %s #%d"),
    20112012                        bkpinfo->backup_media_string,
    20122013                        g_current_media_number);
    20132014                log_to_screen(tmp);
    2014                 paranoid_free(tmp);
     2015                mr_free(tmp);
    20152016
    20162017                just_changed_cds = TRUE;
     
    20232024        } else {
    20242025            just_changed_cds = FALSE;
    2025             asprintf(&tmp, _("Restoring big file %ld"), bigfileno + 1);
     2026            mr_asprintf(&tmp, _("Restoring big file %ld"), bigfileno + 1);
    20262027            update_progress_form(tmp);
    2027             paranoid_free(tmp);
     2028            mr_free(tmp);
    20282029
    20292030            pathname_of_last_biggie_restored =
     
    20332034                fprintf(fbw, "%s\n", pathname_of_last_biggie_restored);
    20342035            }
    2035             paranoid_free(pathname_of_last_biggie_restored);
     2036            mr_free(pathname_of_last_biggie_restored);
    20362037            retval += res;
    20372038            bigfileno++;
    20382039
    20392040        }
    2040         paranoid_free(tmp);
     2041        mr_free(tmp);
    20412042    }
    20422043
    20432044    if (fbw) {
    20442045        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);
    20472048        tmp = find_home_of_exe("setfacl");
    20482049        if (length_of_file(acl_fname) > 0 && tmp) {
    20492050            set_acl_list(biggies_whose_EXATs_we_should_set, acl_fname);
    20502051        }
    2051         paranoid_free(tmp);
     2052        mr_free(tmp);
    20522053
    20532054        tmp = find_home_of_exe("setfattr");
     
    20552056            set_fattr_list(biggies_whose_EXATs_we_should_set, xattr_fname);
    20562057        }
    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);
    20622063
    20632064    if (does_file_exist("/PAUSE")) {
     
    21172118    read_cfg_var(g_mondo_cfg_file, "last-filelist-number", tmp);
    21182119    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"),
    21222123            bkpinfo->backup_media_string,
    21232124            g_current_media_number);
     
    21312132        update_progress_form(progress_str);
    21322133
    2133         asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.bz2",
     2134        mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%ld.afio.bz2",
    21342135                current_tarball_number);
    21352136        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",
    21382139                    current_tarball_number);
    21392140        }
    21402141        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.",
    21432144                    current_tarball_number);
    21442145        }
    21452146        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",
    21482149                    current_tarball_number);
    21492150        }
    21502151        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.",
    21532154                    current_tarball_number);
    21542155        }
    21552156        if (!does_file_exist(tarball_fname)) {
    2156             paranoid_free(tarball_fname);
     2157            mr_free(tarball_fname);
    21572158            if (current_tarball_number == 0) {
    21582159                log_to_screen
     
    21682169            }
    21692170            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"),
    21722173                    bkpinfo->backup_media_string,
    21732174                    g_current_media_number);
    21742175            log_to_screen(progress_str);
    21752176        } else {
    2176             paranoid_free(progress_str);
    2177             asprintf(&progress_str,
     2177            mr_free(progress_str);
     2178            mr_asprintf(&progress_str,
    21782179                    _("Restoring from fileset #%ld on %s #%d"),
    21792180                    current_tarball_number,
     
    21892190            }
    21902191            if (res) {
    2191                 asprintf(&tmp1, _("reported errors"));
     2192                mr_asprintf(&tmp1, _("reported errors"));
    21922193            } 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"),
    21962197                    bkpinfo->backup_media_string,
    21972198                    g_current_media_number, current_tarball_number,tmp1);
    2198             paranoid_free(tmp1);
     2199            mr_free(tmp1);
    21992200           
    22002201            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);
    22062207            if (attempts > 1) {
    22072208                log_to_screen(comment);
    22082209            }
    2209             paranoid_free(comment);
     2210            mr_free(comment);
    22102211
    22112212            retval += res;
     
    22132214            g_current_progress++;
    22142215        }
    2215         paranoid_free(tarball_fname);
    2216     }
    2217     paranoid_free(progress_str);
     2216        mr_free(tarball_fname);
     2217    }
     2218    mr_free(progress_str);
    22182219    close_progress_form();
    22192220
     
    22652266    read_cfg_var(g_mondo_cfg_file, "total-slices", tmp);
    22662267    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);
    22722273    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,
    22762277            "%s/biggies-whose-EXATs-we-should-set", bkpinfo->tmpdir);
    22772278    if (!(fbw = fopen(biggies_whose_EXATs_we_should_set, "w"))) {
     
    22902291
    22912292    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",
    22932294            noof_biggiefiles);
    22942295    log_msg(2, tmp);
    2295     paranoid_free(tmp);
     2296    mr_free(tmp);
    22962297
    22972298    open_progress_form(_("Reassembling large files"),
     
    23192320        }
    23202321        */
    2321         asprintf(&tmp, _("Restoring big file %ld (%lld K)"),
     2322        mr_asprintf(&tmp, _("Restoring big file %ld (%lld K)"),
    23222323                current_bigfile_number + 1, biggie_size / 1024);
    23232324        update_progress_form(tmp);
    2324         paranoid_free(tmp);
     2325        mr_free(tmp);
    23252326
    23262327        pathname_of_last_biggie_restored = restore_a_biggiefile_from_stream(bkpinfo, biggie_fname,
     
    23322333            fprintf(fbw, "%s\n", pathname_of_last_biggie_restored);
    23332334        }
    2334         paranoid_free(pathname_of_last_biggie_restored);
     2335        mr_free(pathname_of_last_biggie_restored);
    23352336
    23362337        retval += res;
     
    23402341    if (current_bigfile_number != noof_biggiefiles
    23412342        && 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",
    23432344                current_bigfile_number, noof_biggiefiles);
    23442345    } else {
    2345         asprintf(&tmp,
     2346        mr_asprintf(&tmp,
    23462347                "%ld biggiefiles in biggielist.txt; %ld biggiefiles processed today.",
    23472348                noof_biggiefiles, current_bigfile_number);
    23482349    }
    23492350    log_msg(1, tmp);
    2350     paranoid_free(tmp);
     2351    mr_free(tmp);
    23512352
    23522353    if (fbw) {
     
    23702371        }
    23712372    }
    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);
    23752376
    23762377    if (does_file_exist("/PAUSE")) {
     
    23862387        mvaddstr_and_log_it(g_currentY++, 74, _("Done."));
    23872388    }
    2388     paranoid_free(biggie_fname);
     2389    mr_free(biggie_fname);
    23892390    return (retval);
    23902391}
     
    24282429    read_cfg_var(g_mondo_cfg_file, "last-filelist-number", tmp);
    24292430    max_val = atol(tmp) + 1;
    2430     paranoid_free(tmp);
     2431    mr_free(tmp);
    24312432
    24322433    chdir(bkpinfo->restore_path);   /* I don't know why this is needed _here_ but it seems to be. -HR, 02/04/2002 */
     
    24342435    run_program_and_log_output("pwd", 5);
    24352436
    2436     asprintf(&progress_str, _("Restoring from media #%d"),
     2437    mr_asprintf(&progress_str, _("Restoring from media #%d"),
    24372438            g_current_media_number);
    24382439    log_to_screen(progress_str);
     
    24562457    while (ctrl_chr != BLK_STOP_AFIOBALLS) {
    24572458        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,
    24592460                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,
    24612462                current_afioball_number);
    24622463        unlink(xattr_fname);
     
    24732474        }
    24742475        /* BERLIOS: useless ?
    2475         asprintf(&tmp,
     2476        mr_asprintf(&tmp,
    24762477                _("Restoring from fileset #%ld (name=%s, size=%ld K)"),
    24772478                current_afioball_number, tmp_fname, (long) tmp_size >> 10);
     
    24842485        retval += res;
    24852486        if (res) {
    2486             asprintf(&tmp, _("Fileset %ld - errors occurred"),
     2487            mr_asprintf(&tmp, _("Fileset %ld - errors occurred"),
    24872488                    current_afioball_number);
    24882489            log_to_screen(tmp);
    2489             paranoid_free(tmp);
     2490            mr_free(tmp);
    24902491        }
    24912492        res =
     
    24982499        g_current_progress++;
    24992500
    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"),
    25022503                current_afioball_number,
    25032504                bkpinfo->backup_media_string,
     
    25072508        unlink(xattr_fname);
    25082509        unlink(acl_fname);
    2509         paranoid_free(xattr_fname);
    2510         paranoid_free(acl_fname);
     2510        mr_free(xattr_fname);
     2511        mr_free(acl_fname);
    25112512    }                           // next
    2512     paranoid_free(progress_str);
    2513     paranoid_free(tmp_fname);
     2513    mr_free(progress_str);
     2514    mr_free(tmp_fname);
    25142515
    25152516    log_msg(1, "All done with afioballs");
     
    25552556    /* BERLIOS: should test return value, or better change the function */
    25562557    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);
    25582559    run_program_and_log_output(tmp, FALSE);
    2559     paranoid_free(tmp);
     2560    mr_free(tmp);
    25602561
    25612562    log_msg(1, "Changing dir to %s", bkpinfo->restore_path);
     
    25722573        newtRefresh();
    25732574    }
    2574     paranoid_free(tmp);
     2575    mr_free(tmp);
    25752576
    25762577    mvaddstr_and_log_it(g_currentY, 0,
     
    26132614    kill_petris();
    26142615    log_msg(2, "restore_everything() --- leaving");
    2615     paranoid_free(cwd);
    2616     paranoid_free(newpath);
     2616    mr_free(cwd);
     2617    mr_free(newpath);
    26172618    return (resA + resB);
    26182619}
     
    27152716        g_text_mode = FALSE;
    27162717    }                           // newt :-)
    2717     paranoid_free(tmp);
     2718    mr_free(tmp);
    27182719
    27192720    if (!
     
    27322733
    27332734    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");
    27352736    make_hole_for_dir(g_tmpfs_mountpt);
    27362737    g_current_media_number = 1; // precaution
     
    27572758
    27582759/* Backup original mountlist.txt */
    2759     asprintf(&tmp, "%s.orig", g_mountlist_fname);
     2760    mr_asprintf(&tmp, "%s.orig", g_mountlist_fname);
    27602761    if (!does_file_exist(g_mountlist_fname)) {
    27612762        log_msg(2,
     
    27632764                __LINE__, g_mountlist_fname);
    27642765    } 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,
    27672768                g_mountlist_fname);
    27682769        run_program_and_log_output(tmp, FALSE);
    27692770    }
    2770     paranoid_free(tmp);
     2771    mr_free(tmp);
    27712772
    27722773/* Init directories */
    27732774    make_hole_for_dir(bkpinfo->tmpdir);
    2774     asprintf(&tmp, "mkdir -p %s", bkpinfo->tmpdir);
     2775    mr_asprintf(&tmp, "mkdir -p %s", bkpinfo->tmpdir);
    27752776    run_program_and_log_output(tmp, FALSE);
    2776     paranoid_free(tmp);
     2777    mr_free(tmp);
    27772778
    27782779    make_hole_for_dir("/var/log");
     
    28052806        load_raidtab_into_raidlist(raidlist, RAIDTAB_FNAME);
    28062807        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");
    28082809        }
    28092810        res = let_user_edit_the_mountlist(bkpinfo, mountlist, raidlist);
     
    28322833        bkpinfo->compression_level = 1;
    28332834        g_current_media_number = 2;
    2834         paranoid_alloc(bkpinfo->restore_path, "/tmp/TESTING");
     2835        mr_allocstr(bkpinfo->restore_path, "/tmp/TESTING");
    28352836        bkpinfo->backup_media_type = dvd;
    2836         paranoid_free(bkpinfo->backup_media_string);
     2837        mr_free(bkpinfo->backup_media_string);
    28372838        bkpinfo->backup_media_string = bkptype_to_string(bkpinfo->backup_media_type);
    28382839        open_progress_form(_("Reassembling /dev/hda1"),
     
    28592860//      finish(0);
    28602861//      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]);
    28632864
    28642865        res = save_filelist_entries_in_common(a, filelist, b, FALSE);
    28652866        free_filelist(filelist);
    2866         paranoid_free(a);
    2867         paranoid_free(b);
     2867        mr_free(a);
     2868        mr_free(b);
    28682869        printf("res = %d", res);
    28692870        finish(0);
     
    29442945        log_msg(2, "Still here. Yay.");
    29452946        if (strlen(bkpinfo->tmpdir) > 0) {
    2946             asprintf(&tmp, "rm -Rf %s/*", bkpinfo->tmpdir);
     2947            mr_asprintf(&tmp, "rm -Rf %s/*", bkpinfo->tmpdir);
    29472948            run_program_and_log_output(tmp, FALSE);
    2948             paranoid_free(tmp);
     2949            mr_free(tmp);
    29492950        }
    29502951        unmount_boot_if_necessary();    /* for Gentoo users */
     
    29602961
    29612962        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);
    29632964        read_cfg_file_into_bkpinfo(g_mondo_cfg_file, bkpinfo);
    29642965        retval = load_mountlist(mountlist, g_mountlist_fname);
     
    29732974                && !is_this_device_mounted(bkpinfo->nfs_mount)) {
    29742975                log_msg(1, "Mounting nfs dir");
    2975                 paranoid_alloc(bkpinfo->isodir, "/tmp/isodir");
     2976                mr_allocstr(bkpinfo->isodir, "/tmp/isodir");
    29762977                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",
    29782979                        bkpinfo->nfs_mount);
    29792980                run_program_and_log_output(tmp, 1);
    2980                 paranoid_free(tmp);
     2981                mr_free(tmp);
    29812982            }
    29822983        }
     
    29952996            log_msg(0, "Partitioning only.");
    29962997            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");
    29982999            load_mountlist(mountlist, g_mountlist_fname);
    29993000            res = partition_everything(mountlist);
     
    30043005            log_msg(0, "Formatting only.");
    30053006            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");
    30073008            load_mountlist(mountlist, g_mountlist_fname);
    30083009            res = format_everything(mountlist, FALSE, raidlist);
     
    30133014            log_msg(0, "Stopping LVM and RAID");
    30143015            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");
    30163017            load_mountlist(mountlist, g_mountlist_fname);
    30173018            res = do_my_funky_lvm_stuff(TRUE, FALSE);
     
    31393140    unlink("/tmp/mondo-run-prog.tmp");
    31403141    set_signals(FALSE);
    3141     asprintf(&tmp, "rm -Rf %s", bkpinfo->tmpdir);
     3142    mr_asprintf(&tmp, "rm -Rf %s", bkpinfo->tmpdir);
    31423143    run_program_and_log_output(tmp, FALSE);
    3143     paranoid_free(tmp);
     3144    mr_free(tmp);
    31443145
    31453146    log_to_screen
    31463147        (_
    31473148         ("Restore log copied to /tmp/mondo-restore.log on your hard disk"));
    3148     asprintf(&tmp,
     3149    mr_asprintf(&tmp,
    31493150            _
    31503151            ("Mondo-restore is exiting (retval=%d)                                      "),
    31513152            retval);
    31523153    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);
    31563157    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);
    31613162    if (am_I_in_disaster_recovery_mode()) {
    31623163        run_program_and_log_output("mount / -o remount,rw", 2);
  • trunk/mondo/src/mondorestore/mondo-rstr-compare.c

    r783 r900  
    1414#include <pthread.h>
    1515#endif
     16#include "mr_mem.h"
    1617
    1718void popup_changelist_from_file(char *);
     
    6162    }
    6263    if (!(fin = fopen(tmp1, "r"))) {
    63         asprintf(&tmp, _("Cannot open bigfile %ld (%s)'s info file"),
     64        mr_asprintf(&tmp, _("Cannot open bigfile %ld (%s)'s info file"),
    6465                bigfileno + 1, tmp);
    6566        log_to_screen(tmp);
    66         paranoid_free(tmp);
    67         paranoid_free(tmp1);
     67        mr_free(tmp);
     68        mr_free(tmp1);
    6869        return (1);
    6970    }
    70     paranoid_free(tmp1);
     71    mr_free(tmp1);
    7172
    7273    fread((void *) &biggiestruct, 1, sizeof(biggiestruct), fin);
    7374    paranoid_fclose(fin);
    7475
    75     asprintf(&checksum, biggiestruct.checksum);
    76     asprintf(&bigfile_fname, biggiestruct.filename);
     76    mr_asprintf(&checksum, biggiestruct.checksum);
     77    mr_asprintf(&bigfile_fname, biggiestruct.filename);
    7778
    7879    log_msg(2, "biggiestruct.filename = %s", bigfile_fname);
     
    8081
    8182    if (!g_text_mode) {
    82         asprintf(&tmp, _("Comparing %s"), bigfile_fname);
     83        mr_asprintf(&tmp, _("Comparing %s"), bigfile_fname);
    8384        newtDrawRootText(0, 22, tmp);
    8485        newtRefresh();
    85         paranoid_free(tmp);
     86        mr_free(tmp);
    8687    }
    8788    /* BERLIOS: Useless ?
     
    9394        return(0);
    9495    } else {
    95         asprintf(&command,
     96        mr_asprintf(&command,
    9697                "md5sum \"%s%s\" > /tmp/md5sum.txt 2> /tmp/errors.txt",
    9798                MNT_RESTORING, bigfile_fname);
     
    101102    if (system(command)) {
    102103        log_OS_error("Warning - command failed");
    103         paranoid_free(command);
    104         paranoid_free(bigfile_fname);
     104        mr_free(command);
     105        mr_free(bigfile_fname);
    105106        return (1);
    106107    } else {
    107         paranoid_free(command);
     108        mr_free(command);
    108109        if (!(fin = fopen("/tmp/md5sum.txt", "r"))) {
    109110            log_msg(2, "Unable to open /tmp/md5sum.txt; can't get live checksum");
    110             paranoid_free(bigfile_fname);
     111            mr_free(bigfile_fname);
    111112            return (1);
    112113        } else {
    113             getline(&original_cksum, &n, fin);
     114            mr_getline(&original_cksum, &n, fin);
    114115            paranoid_fclose(fin);
    115116            for (i = strlen(original_cksum);
     
    128129        retval++;
    129130    }
    130     paranoid_free(original_cksum);
    131     paranoid_free(checksum);
     131    mr_free(original_cksum);
     132    mr_free(checksum);
    132133
    133134    if (retval) {
     
    138139        paranoid_fclose(fout);
    139140    }
    140     paranoid_free(bigfile_fname);
     141    mr_free(bigfile_fname);
    141142
    142143    return (retval);
     
    181182                       noof_biggiefiles);
    182183    for (bigfileno = 0; bigfileno < noof_biggiefiles; bigfileno++) {
    183         asprintf(&tmp, "Comparing big file #%ld", bigfileno + 1);
     184        mr_asprintf(&tmp, "Comparing big file #%ld", bigfileno + 1);
    184185        log_msg(1, tmp);
    185186        update_progress_form(tmp);
    186         paranoid_free(tmp);
     187        mr_free(tmp);
    187188        res = compare_a_biggiefile(bkpinfo, bigfileno);
    188189        retval += res;
     
    232233    use_star = (strstr(tarball_fname, ".star")) ? TRUE : FALSE;
    233234    assert_string_is_neither_NULL_nor_zerolength(tarball_fname);
    234     asprintf(&filelist_name, MNT_CDROM "/archives/filelist.%d",
     235    mr_asprintf(&filelist_name, MNT_CDROM "/archives/filelist.%d",
    235236            current_tarball_number);
    236237
    237238    noof_lines = count_lines_in_file(filelist_name);
    238     paranoid_free(filelist_name);
     239    mr_free(filelist_name);
    239240
    240241    if (strstr(tarball_fname, ".bz2")) {
    241         asprintf(&compressor_exe, "bzip2");
     242        mr_asprintf(&compressor_exe, "bzip2");
    242243    } else if (strstr(tarball_fname, ".lzo")) {
    243         asprintf(&compressor_exe, "lzop");
     244        mr_asprintf(&compressor_exe, "lzop");
    244245    } else {
    245246        compressor_exe = NULL;
     
    247248
    248249    if (use_star) {
    249         asprintf(&archiver_exe, "star -bz");
    250     } else {
    251         asprintf(&archiver_exe, "afio");
     250        mr_asprintf(&archiver_exe, "star -bz");
     251    } else {
     252        mr_asprintf(&archiver_exe, "afio");
    252253    }
    253254
     
    257258            fatal_error("(compare_a_tarball) Compression program missing");
    258259        }
    259         paranoid_free(tmp);
     260        mr_free(tmp);
    260261
    261262        if (use_star) {
     
    266267        } else {
    267268            tmp = compressor_exe;
    268             asprintf(&compressor_exe, "-P %s -Z", tmp);
    269             paranoid_free(tmp);
     269            mr_asprintf(&compressor_exe, "-P %s -Z", tmp);
     270            mr_free(tmp);
    270271        }
    271272    }
     
    278279#endif
    279280
    280     asprintf(&logfile, "/tmp/afio.log.%d", current_tarball_number);
     281    mr_asprintf(&logfile, "/tmp/afio.log.%d", current_tarball_number);
    281282    if (use_star)               // doesn't use compressor_exe
    282283    {
    283         asprintf(&command,
     284        mr_asprintf(&command,
    284285                "%s -diff H=star file=%s >> %s 2>> %s",
    285286                archiver_exe, tarball_fname, logfile, logfile);
    286287    } else {
    287         asprintf(&command,
     288        mr_asprintf(&command,
    288289                "%s -r -b %ld -M 16m -c %ld %s %s >> %s 2>> %s",
    289290                archiver_exe,
     
    292293    }
    293294#undef BUFSIZE
    294     paranoid_free(archiver_exe);
    295     paranoid_free(compressor_exe);
     295    mr_free(archiver_exe);
     296    mr_free(compressor_exe);
    296297
    297298    res = system(command);
     
    300301        log_OS_error(command);
    301302    }
    302     paranoid_free(command);
     303    mr_free(command);
    303304
    304305    if (length_of_file(logfile) > 5) {
    305         asprintf(&command,
     306        mr_asprintf(&command,
    306307                "sed s/': \\\"'/\\|/ %s | sed s/'\\\": '/\\|/ | cut -d'|' -f2 | sort -u | grep -vx \"dev/.*\" >> /tmp/changed.txt",
    307308                logfile);
    308309        system(command);
    309         paranoid_free(command);
     310        mr_free(command);
    310311        archiver_errors = count_lines_in_file(logfile);
    311312    } else {
     
    314315
    315316    if (archiver_errors) {
    316         asprintf(&tmp,
     317        mr_asprintf(&tmp,
    317318                "Differences found while processing fileset #%d       ",
    318319                current_tarball_number);
    319320        log_msg(1, tmp);
    320         paranoid_free(tmp);
     321        mr_free(tmp);
    321322    }
    322323    unlink(logfile);
    323     paranoid_free(logfile);
     324    mr_free(logfile);
    324325    return (retval);
    325326}
     
    353354
    354355    max_val = atol(tmp);
    355     paranoid_free(tmp);
    356 
    357     asprintf(&progress_str, _("Comparing with %s #%d "),
     356    mr_free(tmp);
     357
     358    mr_asprintf(&progress_str, _("Comparing with %s #%d "),
    358359            bkpinfo->backup_media_string,
    359360            g_current_media_number);
     
    369370        insist_on_this_cd_number(bkpinfo, g_current_media_number);
    370371        update_progress_form(progress_str);
    371         asprintf(&tarball_fname,
     372        mr_asprintf(&tarball_fname,
    372373                MNT_CDROM "/archives/%d.afio.bz2", current_tarball_number);
    373374
    374375        if (!does_file_exist(tarball_fname)) {
    375             paranoid_free(tarball_fname);
    376             asprintf(&tarball_fname, MNT_CDROM "/archives/%d.afio.lzo",
     376            mr_free(tarball_fname);
     377            mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%d.afio.lzo",
    377378                    current_tarball_number);
    378379        }
    379380        if (!does_file_exist(tarball_fname)) {
    380             paranoid_free(tarball_fname);
    381             asprintf(&tarball_fname, MNT_CDROM "/archives/%d.afio.",
     381            mr_free(tarball_fname);
     382            mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%d.afio.",
    382383                    current_tarball_number);
    383384        }
    384385        if (!does_file_exist(tarball_fname)) {
    385             paranoid_free(tarball_fname);
    386             asprintf(&tarball_fname, MNT_CDROM "/archives/%d.star.bz2",
     386            mr_free(tarball_fname);
     387            mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%d.star.bz2",
    387388                    current_tarball_number);
    388389        }
    389390        if (!does_file_exist(tarball_fname)) {
    390             paranoid_free(tarball_fname);
    391             asprintf(&tarball_fname, MNT_CDROM "/archives/%d.star.",
     391            mr_free(tarball_fname);
     392            mr_asprintf(&tarball_fname, MNT_CDROM "/archives/%d.star.",
    392393                    current_tarball_number);
    393394        }
     
    398399                == 0) {
    399400                log_msg(2, "OK, I think I'm done with tarballs...");
    400                 paranoid_free(tarball_fname);
     401                mr_free(tarball_fname);
    401402                break;
    402403            }
    403404            log_msg(2, "OK, I think it's time for another CD...");
    404405            g_current_media_number++;
    405             paranoid_free(progress_str);
    406             asprintf(&progress_str, _("Comparing with %s #%d "),
     406            mr_free(progress_str);
     407            mr_asprintf(&progress_str, _("Comparing with %s #%d "),
    407408                    bkpinfo->backup_media_string,
    408409                    g_current_media_number);
     
    410411        } else {
    411412            res = compare_a_tarball(tarball_fname, current_tarball_number);
    412             paranoid_free(tarball_fname);
     413            mr_free(tarball_fname);
    413414
    414415            g_current_progress++;
     
    416417        }
    417418    }
    418     paranoid_free(progress_str);
     419    mr_free(progress_str);
    419420    close_progress_form();
    420421
     
    470471    noof_changed_files = count_lines_in_file("/tmp/changed.txt");
    471472    if (noof_changed_files) {
    472         asprintf(&tmp, _("%ld files do not match the backup            "),
     473        mr_asprintf(&tmp, _("%ld files do not match the backup            "),
    473474                noof_changed_files);
    474475        //      mvaddstr_and_log_it( g_currentY++, 0, tmp );
    475476        log_to_screen(tmp);
    476         paranoid_free(tmp);
    477 
    478         asprintf(&command, "cat /tmp/changed.txt >> %s", MONDO_LOGFILE);
     477        mr_free(tmp);
     478
     479        mr_asprintf(&command, "cat /tmp/changed.txt >> %s", MONDO_LOGFILE);
    479480        paranoid_system(command);
    480         paranoid_free(command);
    481     } else {
    482         asprintf(&tmp, _("All files match the backup                     "));
     481        mr_free(command);
     482    } else {
     483        mr_asprintf(&tmp, _("All files match the backup                     "));
    483484        mvaddstr_and_log_it(g_currentY++, 0, tmp);
    484485        log_to_screen(tmp);
    485         paranoid_free(tmp);
    486     }
    487 
    488     paranoid_free(cwd);
    489     paranoid_free(new);
     486        mr_free(tmp);
     487    }
     488
     489    mr_free(cwd);
     490    mr_free(new);
    490491
    491492    return (resA + resB);
     
    573574        } else {
    574575            q = count_lines_in_file("/tmp/changed.files");
    575             asprintf(&tmp, _("%ld significant difference%s found."), q,
     576            mr_asprintf(&tmp, _("%ld significant difference%s found."), q,
    576577                    (q != 1) ? "s" : "");
    577578            mvaddstr_and_log_it(g_currentY++, 0, tmp);
    578579            log_to_screen(tmp);
    579             paranoid_free(tmp);
    580 
    581             asprintf(&tmp,
     580            mr_free(tmp);
     581
     582            mr_asprintf(&tmp,
    582583                   _("Type 'less /tmp/changed.files' for a list of non-matching files"));
    583584            mvaddstr_and_log_it(g_currentY++, 0, tmp);
    584585            log_to_screen(tmp);
    585             paranoid_free(tmp);
     586            mr_free(tmp);
    586587
    587588            log_msg(2, "calling popup_changelist_from_file()");
     
    624625    chdir(bkpinfo->restore_path);
    625626
    626     asprintf(&command, "cp -f /tmp/LAST-FILELIST-NUMBER %s/tmp",
     627    mr_asprintf(&command, "cp -f /tmp/LAST-FILELIST-NUMBER %s/tmp",
    627628            bkpinfo->restore_path);
    628629    run_program_and_log_output(command, FALSE);
    629     paranoid_free(command);
     630    mr_free(command);
    630631    mvaddstr_and_log_it(g_currentY,
    631632                        0, _("Verifying archives against filesystem"));
     
    633634    if (bkpinfo->disaster_recovery
    634635        && does_file_exist("/tmp/CDROM-LIVES-HERE")) {
    635         paranoid_free(bkpinfo->media_device);
     636        mr_free(bkpinfo->media_device);
    636637        // last_line_of_file allocates the string
    637638        bkpinfo->media_device = last_line_of_file("/tmp/CDROM-LIVES-HERE");
    638639    } else {
    639         paranoid_free(bkpinfo->media_device);
     640        mr_free(bkpinfo->media_device);
    640641        // find_cdrom_device allocates the string
    641642        bkpinfo->media_device = find_cdrom_device(FALSE);
     
    653654
    654655    mvaddstr_and_log_it(g_currentY++, 74, _("Done."));
    655     paranoid_free(dir);
     656    mr_free(dir);
    656657    return (res);
    657658}
     
    684685    getcwd(dir, MAX_STR_LEN);
    685686    chdir(bkpinfo->restore_path);
    686     asprintf(&command, "cp -f /tmp/LAST-FILELIST-NUMBER %s/tmp",
     687    mr_asprintf(&command, "cp -f /tmp/LAST-FILELIST-NUMBER %s/tmp",
    687688            bkpinfo->restore_path);
    688689    run_program_and_log_output(command, FALSE);
    689     paranoid_free(command);
     690    mr_free(command);
    690691
    691692    mvaddstr_and_log_it(g_currentY,
     
    698699        mvaddstr_and_log_it(g_currentY++, 74, _("Done."));
    699700    }
    700     paranoid_free(dir);
     701    mr_free(dir);
    701702    return (res);
    702703}
  • trunk/mondo/src/mondorestore/mondo-rstr-newt.c

    r783 r900  
    1616
    1717#include "mondo-rstr-newt.h"
     18#include "mr_mem.h"
    1819
    1920/**
     
    7879        (_
    7980         ("   Add one of the following unallocated RAID partitions to this RAID device."));
    80     asprintf(&tmp, "%-26s %s", _("Device"), _("Size"));
     81    mr_asprintf(&tmp, "%-26s %s", _("Device"), _("Size"));
    8182    headerMsg = newtLabel(1, 1, tmp);
    82     paranoid_free(tmp);
     83    mr_free(tmp);
    8384
    8485    partitionsListbox =
     
    167168    assert(keylist != NULL);
    168169
    169     asprintf(&device_str, "/dev/");
    170     asprintf(&mountpoint_str, "/");
     170    mr_asprintf(&device_str, "/dev/");
     171    mr_asprintf(&mountpoint_str, "/");
    171172#ifdef __FreeBSD__
    172     asprintf(&format_str, "ufs");
     173    mr_asprintf(&format_str, "ufs");
    173174#else
    174     asprintf(&format_str, "ext2");
     175    mr_asprintf(&format_str, "ext2");
    175176#endif
    176177    newtOpenWindow(20, 5, 48, 10, _("Add entry"));
     
    199200        b_res = newtRunForm(myForm);
    200201
    201         paranoid_free(device_str);
    202         asprintf(&device_str, device_here);
     202        mr_free(device_str);
     203        mr_asprintf(&device_str, device_here);
    203204        strip_spaces(device_str);
    204205
    205         paranoid_free(format_str);
    206         asprintf(&format_str, format_here);
     206        mr_free(format_str);
     207        mr_asprintf(&format_str, format_here);
    207208        strip_spaces(format_str);
    208209
    209         paranoid_free(mountpoint_str);
    210         asprintf(&mountpoint_str, mountpoint_here);
     210        mr_free(mountpoint_str);
     211        mr_asprintf(&mountpoint_str, mountpoint_here);
    211212        strip_spaces(mountpoint_str);
    212213
    213         paranoid_free(size_str);
    214         asprintf(&size_str, size_here);
     214        mr_free(size_str);
     215        mr_asprintf(&size_str, size_here);
    215216        strip_spaces(size_str);
    216217
     
    234235        return;
    235236    }
    236     asprintf(&drive_to_add, device_str);
     237    mr_asprintf(&drive_to_add, device_str);
    237238    for (i = strlen(drive_to_add); isdigit(drive_to_add[i - 1]); i--);
    238239    num_to_add = atoi(drive_to_add + i);
    239240    drive_to_add[i] = '\0';
    240     paranoid_free(drive_to_add);
     241    mr_free(drive_to_add);
    241242
    242243    currline = mountlist->entries;
    243244    strcpy(mountlist->el[currline].device, device_str);
    244245    strcpy(mountlist->el[currline].mountpoint, mountpoint_str);
    245     paranoid_free(mountpoint_str);
     246    mr_free(mountpoint_str);
    246247
    247248    strcpy(mountlist->el[currline].format, format_str);
    248     paranoid_free(format_str);
     249    mr_free(format_str);
    249250
    250251    mountlist->el[currline].size = atol(size_str) * 1024;
    251     paranoid_free(size_str);
     252    mr_free(size_str);
    252253
    253254    mountlist->entries++;
     
    256257                                    device_str);
    257258    }
    258     paranoid_free(device_str);
     259    mr_free(device_str);
    259260    redraw_mountlist(mountlist, keylist, listbox);
    260261}
     
    296297        }
    297298    }
    298     paranoid_free(sz_out);
     299    mr_free(sz_out);
    299300}
    300301#endif
     
    335336         && strcmp(raidlist->el[i].volname, basename(raid_device)); i++);
    336337    if (i == raidlist->entries) {
    337         asprintf(&tmp,
     338        mr_asprintf(&tmp,
    338339                 "Cannot calc size of raid device %s - cannot find it in raidlist",
    339340                 raid_device);
    340341        log_it(tmp);
    341         paranoid_free(tmp);
     342        mr_free(tmp);
    342343        return (0);             // Isn't this more sensible than 999999999? If the raid dev !exists,
    343344        // then it has no size, right?
     
    351352        int k = 0, l = 0;
    352353        for (k = 0; k < raidrec->plex[j].subdisks; ++k) {
    353             asprintf(&devname, raidrec->plex[j].sd[k].which_device);
     354            mr_asprintf(&devname, raidrec->plex[j].sd[k].which_device);
    354355            for (l = 0; l < raidlist->disks.entries; ++l) {
    355356                if (!strcmp(devname, raidlist->disks.el[l].name)) {
     
    379380                }
    380381            }
    381             paranoid_free(devname);
     382            mr_free(devname);
    382383        }
    383384
     
    400401    }
    401402
    402     asprintf(&tmp, "I have calculated %s's real size to be %ld",
     403    mr_asprintf(&tmp, "I have calculated %s's real size to be %ld",
    403404             raid_device, (long) smallest_plex);
    404405    log_it(tmp);
    405     paranoid_free(tmp);
     406    mr_free(tmp);
    406407    return (smallest_plex);
    407408#else
     
    431432         && strcmp(raidlist->el[i].raid_device, raid_device); i++);
    432433    if (i == raidlist->entries) {
    433         asprintf(&tmp,
     434        mr_asprintf(&tmp,
    434435                 "Cannot calc size of raid device %s - cannot find it in raidlist",
    435436                 raid_device);
    436437        log_it(tmp);
    437         paranoid_free(tmp);
     438        mr_free(tmp);
    438439        return (999999999);
    439440    }
     
    458459        total_size = smallest_partition * (noof_partitions - 1);
    459460    }
    460     asprintf(&tmp, "I have calculated %s's real size to be %ld",
     461    mr_asprintf(&tmp, "I have calculated %s's real size to be %ld",
    461462             raid_device, (long) total_size);
    462463    log_it(tmp);
    463     paranoid_free(tmp);
     464    mr_free(tmp);
    464465    return (total_size);
    465466#endif
     
    487488    char *sz = NULL;
    488489
    489     asprintf(&prompt,
     490    mr_asprintf(&prompt,
    490491             _
    491492             ("Please enter the RAID level you want. (concat, striped, raid5)"));
    492493    if (raidrec->raidlevel == -1) {
    493         asprintf(&tmp, "concat");
     494        mr_asprintf(&tmp, "concat");
    494495    } else if (raidrec->raidlevel == 0) {
    495         asprintf(&tmp, "striped");
     496        mr_asprintf(&tmp, "striped");
    496497    } else {
    497         asprintf(&tmp, "raid%i", raidrec->raidlevel);
     498        mr_asprintf(&tmp, "raid%i", raidrec->raidlevel);
    498499    }
    499500    for (out = 999; out == 999;) {
     
    504505        /* BERLIOS: Useless ???
    505506        if (tmp[0] == '[' && tmp[strlen(tmp) - 1] == ']') {
    506             asprintf(&sz, tmp);
     507            mr_asprintf(&sz, tmp);
    507508            strncpy(tmp, sz + 1, strlen(sz) - 2);
    508509            tmp[strlen(sz) - 2] = '\0';
    509             paranoid_free(sz);
     510            mr_free(sz);
    510511        }
    511512        */
     
    518519        }
    519520        log_it(tmp);
    520         paranoid_free(tmp);
     521        mr_free(tmp);
    521522        if (is_this_raid_personality_registered(out)) {
    522523            log_it
     
    530531        }
    531532    }
    532     paranoid_free(prompt);
     533    mr_free(prompt);
    533534    raidrec->raidlevel = out;
    534535#else
     
    544545        ("grep Pers /proc/mdstat > /tmp/raid-personalities.txt 2> /dev/null");
    545546    personalities = last_line_of_file("/tmp/raid-personalities.txt");
    546     asprintf(&prompt, _("Please enter the RAID level you want. %s"),
     547    mr_asprintf(&prompt, _("Please enter the RAID level you want. %s"),
    547548             personalities);
    548     paranoid_free(personalities);
     549    mr_free(personalities);
    549550
    550551    if (raidrec->raid_level == -1) {
    551         asprintf(&tmp, "linear");
     552        mr_asprintf(&tmp, "linear");
    552553    } else {
    553         asprintf(&tmp, "%d", raidrec->raid_level);
     554        mr_asprintf(&tmp, "%d", raidrec->raid_level);
    554555    }
    555556    for (out = 999;
     
    563564        /* BERLIOS: Useless ???
    564565        if (tmp[0] == '[' && tmp[strlen(tmp) - 1] == ']') {
    565             asprintf(&sz, tmp);
    566             paranoid_free(tmp);
    567 
    568             asprintf(&tmp, sz + 1);
     566            mr_asprintf(&sz, tmp);
     567            mr_free(tmp);
     568
     569            mr_asprintf(&tmp, sz + 1);
    569570            tmp[strlen(sz) - 2] = '\0';
    570             paranoid_free(sz);
     571            mr_free(sz);
    571572        }
    572573        */
     
    591592        }
    592593    }
    593     paranoid_free(tmp);
    594     paranoid_free(prompt);
     594    mr_free(tmp);
     595    mr_free(prompt);
    595596    raidrec->raid_level = out;
    596597#endif
     
    659660    assert_string_is_neither_NULL_nor_zerolength(raid_device);
    660661
    661     asprintf(&tmp, _("Delete %s from RAID device %s - are you sure?"),
     662    mr_asprintf(&tmp, _("Delete %s from RAID device %s - are you sure?"),
    662663             disklist->el[currline].device, raid_device);
    663664    if (!ask_me_yes_or_no(tmp)) {
    664         paranoid_free(tmp);
     665        mr_free(tmp);
    665666        return;
    666667    }
    667     paranoid_free(tmp);
     668    mr_free(tmp);
    668669    for (pos = currline; pos < disklist->entries - 1; pos++) {
    669670        /* memcpy((void*)&disklist->el[pos], (void*)&disklist->el[pos+1], sizeof(struct s_disk)); */
     
    707708                                                  device);
    708709    if (pos >= 0) {
    709         asprintf(&tmp,
     710        mr_asprintf(&tmp,
    710711                 _("Cannot delete %s: it is in use by RAID device %s"),
    711712                 mountlist->el[currline].device,
    712713                 raidlist->el[pos].OSSWAP(raid_device, volname));
    713714        popup_and_OK(tmp);
    714         paranoid_free(tmp);
     715        mr_free(tmp);
    715716        return;
    716717    }
    717     asprintf(&tmp, _("Delete %s - are you sure?"),
     718    mr_asprintf(&tmp, _("Delete %s - are you sure?"),
    718719             mountlist->el[currline].device);
    719720    if (!ask_me_yes_or_no(tmp)) {
    720         paranoid_free(tmp);
     721        mr_free(tmp);
    721722        return;
    722723    }
    723     paranoid_free(tmp);
     724    mr_free(tmp);
    724725
    725726    if (strstr(mountlist->el[currline].device, RAID_DEVICE_STUB)) {
    726         asprintf(&device, mountlist->el[currline].device);
     727        mr_asprintf(&device, mountlist->el[currline].device);
    727728        delete_raidlist_entry(mountlist, raidlist, device);
    728729        for (currline = 0;
     
    732733            if (currline == mountlist->entries) {
    733734                log_it("Dev is gone. I can't delete it. Ho-hum");
    734                 paranoid_free(device);
     735                mr_free(device);
    735736                return;
    736737            }
    737         paranoid_free(device);
     738        mr_free(device);
    738739    }
    739740    memcpy((void *) &mountlist->el[currline],
     
    775776        return;
    776777    }
    777     asprintf(&tmp,
     778    mr_asprintf(&tmp,
    778779             _("Do you want me to delete %s's partitions, too?"), device);
    779780    delete_partitions_too = ask_me_yes_or_no(tmp);
     
    820821        items--;
    821822    }
    822     paranoid_free(tmp);
     823    mr_free(tmp);
    823824
    824825    raidlist->entries = items;
     
    845846
    846847    av = &raidrec->additional_vars;
    847     asprintf(&tmp, _("Delete %s - are you sure?"), av->el[lino].label);
     848    mr_asprintf(&tmp, _("Delete %s - are you sure?"), av->el[lino].label);
    848849    if (ask_me_yes_or_no(tmp)) {
    849850        if (!strcmp(av->el[lino].label, "persistent-superblock")
    850851            || !strcmp(av->el[lino].label, "chunk-size")) {
    851             paranoid_free(tmp);
    852             asprintf(&tmp, _("%s must not be deleted. It would be bad."),
     852            mr_free(tmp);
     853            mr_asprintf(&tmp, _("%s must not be deleted. It would be bad."),
    853854                     av->el[lino].label);
    854855            popup_and_OK(tmp);
    855856        } else {
    856             paranoid_free(av->el[lino].label);
    857             paranoid_free(av->el[lino].value);
     857            mr_free(av->el[lino].label);
     858            mr_free(av->el[lino].value);
    858859            memcpy((void *) &av->el[lino], (void *) &av->el[av->entries--],
    859860                   sizeof(struct raid_var_line));
     
    864865        }
    865866    }
    866     paranoid_free(tmp);
     867    mr_free(tmp);
    867868}
    868869#endif
     
    924925                if (!warned_already) {
    925926                    warned_already = TRUE;
    926                     asprintf(&tmp,
     927                    mr_asprintf(&tmp,
    927928                             _
    928929                             ("Too many lines. Displaying first %d entries only. Close a directory to see more."),
    929930                             ARBITRARY_MAXIMUM);
    930931                    popup_and_OK(tmp);
    931                     paranoid_free(tmp);
     932                    mr_free(tmp);
    932933                }
    933934            } else {
     
    948949                (g_strings_of_flist_window[i],
    949950                 g_strings_of_flist_window[i - 1]) < 0) {
    950                 asprintf(&tmp, g_strings_of_flist_window[i]);
     951                mr_asprintf(&tmp, g_strings_of_flist_window[i]);
    951952                strcpy(g_strings_of_flist_window[i],
    952953                       g_strings_of_flist_window[i - 1]);
    953954                strcpy(g_strings_of_flist_window[i - 1], tmp);
    954                 paranoid_free(tmp);
     955                mr_free(tmp);
    955956
    956957                dummybool = g_is_path_selected[i];
     
    963964        newtListboxClear(listbox);
    964965        for (i = 0; i < lines_in_flist_window; i++) {
    965             asprintf(&tmp, "%c%c %-80s",
     966            mr_asprintf(&tmp, "%c%c %-80s",
    966967                     (g_is_path_selected[i] ? '*' : ' '),
    967968                     (g_is_path_expanded[i] ? '+' : '-'),
     
    973974            keylist[i] = (void *) i;
    974975            newtListboxAppendEntry(listbox, tmp, keylist[i]);
    975             paranoid_free(tmp);
     976            mr_free(tmp);
    976977        }
    977978        return (lines_in_flist_window);
     
    12231224    memcpy((void *) &bkp_raidlist, (void *) raidlist,
    12241225           sizeof(struct raidlist_itself));
    1225     asprintf(&device_str, mountlist->el[currline].device);
    1226     asprintf(&device_used_to_be, mountlist->el[currline].device);
    1227     asprintf(&mountpoint_str, mountlist->el[currline].mountpoint);
    1228     asprintf(&mountpt_used_to_be, mountlist->el[currline].mountpoint);
    1229     asprintf(&format_str, mountlist->el[currline].format);
    1230     asprintf(&size_str, "%lld", mountlist->el[currline].size / 1024);
     1226    mr_asprintf(&device_str, mountlist->el[currline].device);
     1227    mr_asprintf(&device_used_to_be, mountlist->el[currline].device);
     1228    mr_asprintf(&mountpoint_str, mountlist->el[currline].mountpoint);
     1229    mr_asprintf(&mountpt_used_to_be, mountlist->el[currline].mountpoint);
     1230    mr_asprintf(&format_str, mountlist->el[currline].format);
     1231    mr_asprintf(&size_str, "%lld", mountlist->el[currline].size / 1024);
    12311232
    12321233    newtOpenWindow(20, 5, 48, 10, "Edit entry");
     
    12371238    deviceComp =
    12381239        newtEntry(14, 1, device_str, 30, (void *) &device_here, 0);
    1239     paranoid_free(device_str);
     1240    mr_free(device_str);
    12401241
    12411242    mountpointComp =
    12421243        newtEntry(14, 2, mountpoint_str, 30, (void *) &mountpoint_here, 0);
    1243     paranoid_free(mountpoint_str);
     1244    mr_free(mountpoint_str);
    12441245
    12451246    formatComp =
    12461247        newtEntry(14, 4, format_str, 15, (void *) &format_here, 0);
    1247     paranoid_free(format_str);
     1248    mr_free(format_str);
    12481249
    12491250    if (strstr(mountlist->el[currline].device, RAID_DEVICE_STUB)
     
    12531254        sizeComp = newtEntry(14, 3, size_str, 10, (void *) &size_here, 0);
    12541255    }
    1255     paranoid_free(size_str);
     1256    mr_free(size_str);
    12561257
    12571258    bOK = newtButton(2, 6, _("  OK  "));
     
    12701271        b_res = newtRunForm(myForm);
    12711272
    1272         paranoid_free(device_str);
    1273         asprintf(&device_str, device_here);
     1273        mr_free(device_str);
     1274        mr_asprintf(&device_str, device_here);
    12741275        strip_spaces(device_str);
    12751276
    1276         paranoid_free(mountpoint_str);
    1277         asprintf(&mountpoint_str, mountpoint_here);
     1277        mr_free(mountpoint_str);
     1278        mr_asprintf(&mountpoint_str, mountpoint_here);
    12781279        strip_spaces(mountpoint_str);
    12791280
    1280         paranoid_free(format_str);
    1281         asprintf(&format_str, format_here);
    1282         paranoid_free(format_here);
     1281        mr_free(format_str);
     1282        mr_asprintf(&format_str, format_here);
     1283        mr_free(format_here);
    12831284        strip_spaces(format_str);
    12841285        if (b_res == bOK && strstr(device_str, RAID_DEVICE_STUB)
     
    12951296            continue;
    12961297        }
    1297         paranoid_free(mountpt_used_to_be);
     1298        mr_free(mountpt_used_to_be);
    12981299
    12991300        if (!strstr(mountlist->el[currline].device, RAID_DEVICE_STUB)
    13001301            && strcmp(mountlist->el[currline].mountpoint, "image")) {
    1301             asprintf(&size_str, size_here);
     1302            mr_asprintf(&size_str, size_here);
    13021303            strip_spaces(size_str);
    13031304        } else {
    1304             asprintf(&size_str, "%ld",
     1305            mr_asprintf(&size_str, "%ld",
    13051306                    calculate_raid_device_size(mountlist, raidlist,
    13061307                                               mountlist->el[currline].
     
    13081309            newtLabelSetText(sizeComp, size_str);
    13091310        }
    1310         paranoid_free(size_here);
     1311        mr_free(size_here);
    13111312
    13121313        /* do not let user click RAID button if user has changed device_str */
     
    13251326                                                 device);
    13261327                if (j < 0) {
    1327                     asprintf(&tmp,
     1328                    mr_asprintf(&tmp,
    13281329                            _
    13291330                            ("/etc/raidtab does not have an entry for %s; please delete it and add it again"),
    13301331                            mountlist->el[currline].device);
    13311332                    popup_and_OK(tmp);
    1332                     paranoid_free(tmp);
     1333                    mr_free(tmp);
    13331334                } else {
    13341335                    log_it(_("edit_raidlist_entry - calling"));
     
    13391340        }
    13401341    }
    1341     paranoid_free(device_here);
    1342     paranoid_free(mountpoint_here);
     1342    mr_free(device_here);
     1343    mr_free(mountpoint_here);
    13431344
    13441345    newtFormDestroy(myForm);
     
    13521353    strcpy(mountlist->el[currline].device, device_str);
    13531354    strcpy(mountlist->el[currline].mountpoint, mountpoint_str);
    1354     paranoid_free(mountpoint_str);
     1355    mr_free(mountpoint_str);
    13551356
    13561357    strcpy(mountlist->el[currline].format, format_str);
    1357     paranoid_free(format_str);
     1358    mr_free(format_str);
    13581359
    13591360    if (strcmp(mountlist->el[currline].mountpoint, "image")) {
     
    13661367        }
    13671368    }
    1368     paranoid_free(size_str);
     1369    mr_free(size_str);
    13691370
    13701371    newtListboxSetEntry(listbox, (long) keylist[currline],
     
    13971398#endif
    13981399    redraw_mountlist(mountlist, keylist, listbox);
    1399     paranoid_free(device_str);
    1400     paranoid_free(device_used_to_be);
     1400    mr_free(device_str);
     1401    mr_free(device_used_to_be);
    14011402}
    14021403
     
    15161517    memcpy((void *) &bkp_raidrec, (void *) raidrec,
    15171518           sizeof(struct vinum_volume));
    1518     asprintf(&title_of_editraidForm_window, _("Plexes on %s"),
     1519    mr_asprintf(&title_of_editraidForm_window, _("Plexes on %s"),
    15191520            raidrec->volname);
    15201521    newtPushHelpLine(_("   Please select a plex to edit"));
    15211522    newtOpenWindow(13, 5, 54, 15, title_of_editraidForm_window);
    1522     paranoid_free(title_of_editraidForm_window);
     1523    mr_free(title_of_editraidForm_window);
    15231524
    15241525    for (;;) {
    1525         asprintf(&headerstr, "%-14s %-8s  %11s  %8s", _("Plex"), _("Level",) _("Stripe Size"), _("Subdisks"));
     1526        mr_asprintf(&headerstr, "%-14s %-8s  %11s  %8s", _("Plex"), _("Level",) _("Stripe Size"), _("Subdisks"));
    15261527
    15271528        bOK = newtCompactButton(2, 13, _("  OK  "));
     
    15341535            newtListbox(2, 3, 9, NEWT_FLAG_SCROLL | NEWT_FLAG_RETURNEXIT);
    15351536        plexesHeader = newtLabel(2, 2, headerstr);
    1536         paranoid_free(headerstr);
     1537        mr_free(headerstr);
    15371538
    15381539        editraidForm = newtForm(NULL, NULL, 0);
     
    15441545                switch (raidrec->plex[i].raidlevel) {
    15451546                case -1:
    1546                     asprintf(&raidlevel, "concat");
     1547                    mr_asprintf(&raidlevel, "concat");
    15471548                    break;
    15481549                case 0:
    1549                     asprintf(&raidlevel, "striped");
     1550                    mr_asprintf(&raidlevel, "striped");
    15501551                    break;
    15511552                case 5:
    1552                     asprintf(&raidlevel, "raid5");
     1553                    mr_asprintf(&raidlevel, "raid5");
    15531554                    break;
    15541555                default:
    1555                     asprintf(&raidlevel, "raid%i",
     1556                    mr_asprintf(&raidlevel, "raid%i",
    15561557                            raidrec->plex[i].raidlevel);
    15571558                    break;
     
    15591560
    15601561                if (raidrec->plex[i].raidlevel == -1) {
    1561                     asprintf(&chunksize, "N/A");
     1562                    mr_asprintf(&chunksize, "N/A");
    15621563                } else {
    1563                     asprintf(&chunksize, "%dk", raidrec->plex[i].stripesize);
     1564                    mr_asprintf(&chunksize, "%dk", raidrec->plex[i].stripesize);
    15641565                }
    1565                 asprintf(&pname, "%s.p%i", raidrec->volname, i);
    1566                 asprintf(&entry, "%-14s %-8s  %11s  %8d",
     1566                mr_asprintf(&pname, "%s.p%i", raidrec->volname, i);
     1567                mr_asprintf(&entry, "%-14s %-8s  %11s  %8d",
    15671568                         pname, raidlevel, chunksize,
    15681569                         raidrec->plex[i].subdisks);
    1569                 paranoid_free(pname);
    1570                 paranoid_free(chunksize);
    1571                 paranoid_free(raidlevel);
     1570                mr_free(pname);
     1571                mr_free(chunksize);
     1572                mr_free(raidlevel);
    15721573                newtListboxAppendEntry(plexesListbox, entry, keylist[i]);
    1573                 paranoid_free(entry);
     1574                mr_free(entry);
    15741575            }
    15751576        }
     
    15921593
    15931594        if (b_res == bDelete) {
    1594             asprintf(&msg, _("Are you sure you want to delete %s.p%i?"),
     1595            mr_asprintf(&msg, _("Are you sure you want to delete %s.p%i?"),
    15951596                    raidrec->volname, currline2);
    15961597            if (ask_me_yes_or_no(msg)) {
     
    16011602                raidrec->plexes--;
    16021603            }
    1603             paranoid_free(msg);
     1604            mr_free(msg);
    16041605            continue;
    16051606        }
     
    16591660    memcpy((void *) bkp_raidrec, (void *) raidrec,
    16601661           sizeof(struct raid_device_record));
    1661     asprintf(&title_of_editraidForm_window, _("Edit %s"), raidrec->raid_device);
     1662    mr_asprintf(&title_of_editraidForm_window, _("Edit %s"), raidrec->raid_device);
    16621663    log_msg(2, "Opening newt window");
    16631664    newtOpenWindow(20, 5, 40, 14, title_of_editraidForm_window);
    1664     paranoid_free(title_of_editraidForm_window);
     1665    mr_free(title_of_editraidForm_window);
    16651666
    16661667    for (;;) {
    16671668        log_msg(2, "Main loop");
    1668         asprintf(&sz_raid_level,
     1669        mr_asprintf(&sz_raid_level,
    16691670               turn_raid_level_number_to_string(raidrec->raid_level));
    1670         asprintf(&sz_data_disks,
     1671        mr_asprintf(&sz_data_disks,
    16711672               number_of_disks_as_string(raidrec->data_disks.entries,
    16721673                                         _("data")));
    1673         asprintf(&sz_spare_disks,
     1674        mr_asprintf(&sz_spare_disks,
    16741675               number_of_disks_as_string(raidrec->spare_disks.entries,
    16751676                                         _("spare")));
    1676         asprintf(&sz_parity_disks,
     1677        mr_asprintf(&sz_parity_disks,
    16771678               number_of_disks_as_string(raidrec->parity_disks.entries,
    16781679                                         _("parity")));
    1679         asprintf(&sz_failed_disks,
     1680        mr_asprintf(&sz_failed_disks,
    16801681               number_of_disks_as_string(raidrec->failed_disks.entries,
    16811682                                         _("failed")));
     
    16851686        bSelectFailed = newtButton(20, 5, sz_failed_disks);
    16861687        bChangeRaid = newtButton(1, 9, sz_raid_level);
    1687         paranoid_free(sz_raid_level);
    1688         paranoid_free(sz_data_disks);
    1689         paranoid_free(sz_spare_disks);
    1690         paranoid_free(sz_parity_disks);
    1691         paranoid_free(sz_failed_disks);
     1688        mr_free(sz_raid_level);
     1689        mr_free(sz_data_disks);
     1690        mr_free(sz_spare_disks);
     1691        mr_free(sz_parity_disks);
     1692        mr_free(sz_failed_disks);
    16921693
    16931694        bOK = newtButton(16 + (raidrec->raid_level == -1), 9, _("  OK  "));
     
    17351736        calculate_raid_device_size(mountlist, raidlist,
    17361737                                   raidrec->raid_device);
    1737     paranoid_free(bkp_raidrec);
     1738    mr_free(bkp_raidrec);
    17381739#endif
    17391740}
     
    17921793    memcpy((void *) &bkp_raidrec, (void *) raidrec,
    17931794           sizeof(struct vinum_plex));
    1794     asprintf(&title_of_editraidForm_window, "%s.p%i",
     1795    mr_asprintf(&title_of_editraidForm_window, "%s.p%i",
    17951796            raidlist->el[currline].volname, currline2);
    17961797    newtPushHelpLine
     
    17981799         ("   Please select a subdisk to edit, or edit this plex's parameters"));
    17991800    newtOpenWindow(13, 3, 54, 18, title_of_editraidForm_window);
    1800     paranoid_free(title_of_editraidForm_window);
     1801    mr_free(title_of_editraidForm_window);
    18011802
    18021803    for (;;) {
    18031804        switch (raidrec->raidlevel) {
    18041805        case -1:
    1805             asprintf(&tmp, "concat");
     1806            mr_asprintf(&tmp, "concat");
    18061807            break;
    18071808        case 0:
    1808             asprintf(&tmp, "striped");
     1809            mr_asprintf(&tmp, "striped");
    18091810            break;
    18101811        case 5:
    1811             asprintf(&tmp, "raid5");
     1812            mr_asprintf(&tmp, "raid5");
    18121813            break;
    18131814        default:
    1814             asprintf(&tmp, _("unknown (%i)"), raidrec->raidlevel);
     1815            mr_asprintf(&tmp, _("unknown (%i)"), raidrec->raidlevel);
    18151816            break;
    18161817        }
    18171818        bLevel = newtCompactButton(2, 2, _(" RAID level "));
    18181819        sLevel = newtLabel(19, 2, tmp);
    1819         paranoid_free(tmp);
     1820        mr_free(tmp);
    18201821
    18211822        if (raidrec->raidlevel >= 0) {
    1822             asprintf(&tmp, "%ik", raidrec->stripesize);
     1823            mr_asprintf(&tmp, "%ik", raidrec->stripesize);
    18231824            bStripeSize = newtCompactButton(2, 4, _(" Stripe size "));
    18241825        } else {
    1825             asprintf(&tmp, "N/A");
     1826            mr_asprintf(&tmp, "N/A");
    18261827            bStripeSize = newtLabel(2, 4, _("Stripe size:"));
    18271828        }
    18281829        sStripeSize = newtLabel(19, 4, tmp);
    1829         paranoid_free(tmp);
     1830        mr_free(tmp);
    18301831
    18311832        bOK = newtCompactButton(2, 16, _("  OK  "));
     
    18541855            keylist[i] = (void *) i;
    18551856            if (i < raidrec->subdisks) {
    1856                 asprintf(&entry, "%-17s",
     1857                mr_asprintf(&entry, "%-17s",
    18571858                         find_dev_entry_for_raid_device_name(raidlist,
    18581859                                                             raidrec->
     
    18601861                                                             which_device));
    18611862                newtListboxAppendEntry(allocListbox, entry, keylist[i]);
    1862                 paranoid_free(entry);
     1863                mr_free(entry);
    18631864            }
    18641865            if (i < unallocparts->entries) {
    1865                 asprintf(&entry, "%-17s", unallocparts->el[i].device);
     1866                mr_asprintf(&entry, "%-17s", unallocparts->el[i].device);
    18661867                newtListboxAppendEntry(unallocListbox, entry, keylist[i]);
    1867                 paranoid_free(entry);
     1868                mr_free(entry);
    18681869            }
    18691870        }
     
    19151916            choose_raid_level(raidrec);
    19161917        } else if (b_res == bStripeSize) {
    1917             asprintf(&tmp, "%i", raidrec->stripesize);
     1918            mr_asprintf(&tmp, "%i", raidrec->stripesize);
    19181919            if (popup_and_get_string
    19191920                (_("Stripe size"),
     
    19211922                raidrec->stripesize = atoi(tmp);
    19221923            }
    1923             paranoid_free(tmp);
     1924            mr_free(tmp);
    19241925        } else if ((b_res == bAlloc) || (b_res == unallocListbox)) {
    19251926            if (currline_u <= unallocparts->entries)
     
    19691970    assert(lino >= 0);
    19701971
    1971     asprintf(&sz_out, raidrec->additional_vars.el[lino].value);
    1972     asprintf(&header, _("Edit %s"), raidrec->additional_vars.el[lino].label);
    1973     asprintf(&comment, _("Please set %s's value (currently '%s')"),
     1972    mr_asprintf(&sz_out, raidrec->additional_vars.el[lino].value);
     1973    mr_asprintf(&header, _("Edit %s"), raidrec->additional_vars.el[lino].label);
     1974    mr_asprintf(&comment, _("Please set %s's value (currently '%s')"),
    19741975            raidrec->additional_vars.el[lino].label, sz_out);
    19751976    if (popup_and_get_string(header, comment, sz_out)) {
    1976         paranoid_free(raidrec->additional_vars.el[lino].value);
     1977        mr_free(raidrec->additional_vars.el[lino].value);
    19771978        raidrec->additional_vars.el[lino].value = sz_out;
    19781979    }
    1979     paranoid_free(header);
    1980     paranoid_free(comment);
     1980    mr_free(header);
     1981    mr_free(comment);
    19811982}
    19821983#endif
     
    20432044    bCancel = newtCompactButton(i += 12, 17, _("Cancel"));
    20442045    bOK = newtCompactButton(i += 12, 17, _("  OK  "));
    2045     asprintf(&tmp, "%-24s %-24s %-8s  %s", _("Device"), _("Mountpoint"),
     2046    mr_asprintf(&tmp, "%-24s %-24s %-8s  %s", _("Device"), _("Mountpoint"),
    20462047            _("Format"), _("Size (MB)"));
    20472048    headerMsg = newtLabel(2, 1, tmp);
     
    20642065        newtLabelSetText(flawsLabelC, flaws_str_C);
    20652066
    2066         paranoid_free(flaws_str_A);
    2067         paranoid_free(flaws_str_B);
    2068         paranoid_free(flaws_str_C);
     2067        mr_free(flaws_str_A);
     2068        mr_free(flaws_str_B);
     2069        mr_free(flaws_str_C);
    20692070
    20702071        b_res = newtRunForm(myForm);
     
    21962197    memcpy((void *) &bkp_raidrec, (void *) raidrec,
    21972198           sizeof(struct raid_device_record));
    2198     asprintf(&title_of_window, "Additional variables");
     2199    mr_asprintf(&title_of_window, "Additional variables");
    21992200    newtPushHelpLine
    22002201        (_
     
    22112212    bCancel = newtCompactButton(i += 9, 9, _("Cancel"));
    22122213    newtOpenWindow(17, 7, 46, 10, title_of_window);
    2213     paranoid_free(title_of_window);
     2214    mr_free(title_of_window);
    22142215
    22152216    myForm = newtForm(NULL, NULL, 0);
     
    23062307#ifdef __FreeBSD__
    23072308    for (i = 0; i < raidlist->entries; i++) {
    2308         asprintf(&vdev, "/dev/vinum/%s", raidlist->el[i].volname);
     2309        mr_asprintf(&vdev, "/dev/vinum/%s", raidlist->el[i].volname);
    23092310        if (!strcmp(device, vdev)) {
    2310             paranoid_free(vdev);
     2311            mr_free(vdev);
    23112312            break;
    23122313        }
    2313         paranoid_free(vdev);
     2314        mr_free(vdev);
    23142315    }
    23152316#else
     
    23442345    // log_it("%d - AAA - isodir_path = %s", isodir_path);
    23452346    if (isodir_device == NULL) {
    2346         asprintf(&isodir_device, "/dev/");
     2347        mr_asprintf(&isodir_device, "/dev/");
    23472348    }
    23482349    if (isodir_path == NULL) {
    2349         asprintf(&isodir_path, "/");
     2350        mr_asprintf(&isodir_path, "/");
    23502351    }
    23512352    if (does_file_exist("/tmp/NFS-SERVER-PATH")) {
    2352         paranoid_free(isodir_device);
     2353        mr_free(isodir_device);
    23532354        isodir_device = last_line_of_file("/tmp/NFS-SERVER-MOUNT");
    2354         asprintf(&isodir_format, "nfs");
    2355         paranoid_free(isodir_path);
     2355        mr_asprintf(&isodir_format, "nfs");
     2356        mr_free(isodir_path);
    23562357        isodir_path = last_line_of_file("/tmp/NFS-SERVER-PATH");
    23572358    }
     
    24152416    raidrec = &raidlist->el[pos_in_raidlist];
    24162417    initialize_raidrec(raidrec);
    2417     asprintf(&raidrec->OSSWAP(raid_device, volname),
     2418    mr_asprintf(&raidrec->OSSWAP(raid_device, volname),
    24182419           OSSWAP(device, basename(device)));
    24192420#ifndef __FreeBSD__
     
    25732574    }
    25742575    for (i = 0; i < unallocated_raid_partitions->entries; i++) {
    2575         asprintf(&tmp, "%-22s %8lld",
     2576        mr_asprintf(&tmp, "%-22s %8lld",
    25762577                unallocated_raid_partitions->el[i].device,
    25772578                unallocated_raid_partitions->el[i].size / 1024);
    25782579        newtListboxAppendEntry(listbox, tmp, keylist[i]);
    2579         paranoid_free(tmp);
     2580        mr_free(tmp);
    25802581    }
    25812582}
     
    26102611    }
    26112612    for (i = 0; i < additional_vars->entries; i++) {
    2612         asprintf(&tmp, "%-32s %-8s", additional_vars->el[i].label,
     2613        mr_asprintf(&tmp, "%-32s %-8s", additional_vars->el[i].label,
    26132614                additional_vars->el[i].value);
    26142615        newtListboxAppendEntry(listbox, tmp, keylist[i]);
    2615         paranoid_free(tmp);
     2616        mr_free(tmp);
    26162617    }
    26172618}
     
    26832684    pos = which_raid_device_is_using_this_partition(raidlist, old_dev);
    26842685    if (pos < 0) {
    2685         asprintf(&tmp, "No need to rejig %s in raidlist: it's not listed.",
     2686        mr_asprintf(&tmp, "No need to rejig %s in raidlist: it's not listed.",
    26862687                old_dev);
    26872688        log_it(tmp);
    2688         paranoid_free(tmp);
     2689        mr_free(tmp);
    26892690    } else {
    26902691        if ((j =
     
    27182719#endif
    27192720        else {
    2720             asprintf(&tmp,
     2721            mr_asprintf(&tmp,
    27212722                    "%s is supposed to be listed in this raid dev but it's not...",
    27222723                    old_dev);
    27232724            log_it(tmp);
    2724             paranoid_free(tmp);
     2725            mr_free(tmp);
    27252726        }
    27262727    }
     
    28332834
    28342835    iamhere("Post-malloc");
    2835     asprintf(&help_text,
     2836    mr_asprintf(&help_text,
    28362837           _
    28372838           ("   Edit this RAID device's list of partitions. Choose OK or Cancel when done."));
    2838     asprintf(&header_text, "%-24s    %s", _("Device"), _("Index"));
    2839     asprintf(&title_of_window, _("%s contains..."), raidrec->raid_device);
     2839    mr_asprintf(&header_text, "%-24s    %s", _("Device"), _("Index"));
     2840    mr_asprintf(&title_of_window, _("%s contains..."), raidrec->raid_device);
    28402841    newtPushHelpLine(help_text);
    2841     paranoid_free(help_text);
     2842    mr_free(help_text);
    28422843    for (b_res = (newtComponent) 12345; b_res != bOK && b_res != bCancel;) {
    28432844        headerMsg = newtLabel(1, 1, header_text);
     
    28962897                    redraw_disklist(disklist, keylist, partitionsListbox);
    28972898                } else {
    2898                     asprintf(&tmp, _("%s's index is %d. What should it be?"),
     2899                    mr_asprintf(&tmp, _("%s's index is %d. What should it be?"),
    28992900                            raidrec->raid_device,
    29002901                            disklist->el[currline].index);
    2901                     asprintf(&sz_res, "%d", disklist->el[currline].index);
     2902                    mr_asprintf(&sz_res, "%d", disklist->el[currline].index);
    29022903                    if (popup_and_get_string
    29032904                        (_("Set index"), tmp, sz_res)) {
    29042905                        disklist->el[currline].index = atoi(sz_res);
    29052906                    }
    2906                     paranoid_free(tmp);
    2907                     paranoid_free(sz_res);
     2907                    mr_free(tmp);
     2908                    mr_free(sz_res);
    29082909                    redraw_disklist(disklist, keylist, partitionsListbox);
    29092910                }
     
    29132914        newtPopWindow();
    29142915    }
    2915     paranoid_free(title_of_window);
    2916     paranoid_free(header_text);
     2916    mr_free(title_of_window);
     2917    mr_free(header_text);
    29172918
    29182919    newtPopHelpLine();
     
    29252926               sizeof(struct list_of_disks));
    29262927    }
    2927     paranoid_free(bkp_raidrec);
    2928     paranoid_free(bkp_disklist);
    2929     paranoid_free(bkp_raidlist);
    2930     paranoid_free(unallocated_raid_partitions);
     2928    mr_free(bkp_raidrec);
     2929    mr_free(bkp_disklist);
     2930    mr_free(bkp_raidlist);
     2931    mr_free(unallocated_raid_partitions);
    29312932}
    29322933#endif
     
    29602961                (_
    29612962                 ("Which mode - (A)utomatic, (I)nteractive, \n(C)ompare only, or (E)xit to shell?\n--> "));
    2962             getline(&tmp, &n, stdin);
    2963         }
    2964         paranoid_free(tmp);
     2963            mr_getline(&tmp, &n, stdin);
     2964        }
     2965        mr_free(tmp);
    29652966        return (output);
    29662967    }
  • trunk/mondo/src/mondorestore/mondo-rstr-tools.c

    r808 r900  
    1313#include <pthread.h>
    1414#endif
     15#include "mr_mem.h"
    1516
    1617extern bool g_sigpipe_caught;
     
    5253void free_MR_global_filenames()
    5354{
    54     paranoid_free(g_biggielist_txt);
    55     paranoid_free(g_filelist_full);
    56     paranoid_free(g_filelist_imagedevs);
    57     paranoid_free(g_imagedevs_restthese);
    58     paranoid_free(g_mondo_cfg_file);
    59     paranoid_free(g_mountlist_fname);
    60     paranoid_free(g_mondo_home);
    61     paranoid_free(g_tmpfs_mountpt);
    62     paranoid_free(g_isodir_device);
    63     paranoid_free(g_isodir_format);
     55    mr_free(g_biggielist_txt);
     56    mr_free(g_filelist_full);
     57    mr_free(g_filelist_imagedevs);
     58    mr_free(g_imagedevs_restthese);
     59    mr_free(g_mondo_cfg_file);
     60    mr_free(g_mountlist_fname);
     61    mr_free(g_mondo_home);
     62    mr_free(g_tmpfs_mountpt);
     63    mr_free(g_isodir_device);
     64    mr_free(g_isodir_format);
    6465
    6566}
     
    9495        fatal_error("Cannot openin outfname");
    9596    }
    96     for (getline(&incoming, &n, fin);
    97          !feof(fin); getline(&incoming, &n, fin)) {
     97    for (mr_getline(&incoming, &n, fin);
     98         !feof(fin); mr_getline(&incoming, &n, fin)) {
    9899        strip_spaces(incoming);
    99100
     
    102103        }
    103104
    104         asprintf(&question,
     105        mr_asprintf(&question,
    105106                 _("Should I restore the image of %s ?"), incoming);
    106107
     
    108109            fprintf(fout, "%s\n", incoming);
    109110        }
    110         paranoid_free(question);
     111        mr_free(question);
    111112    }
    112113
    113114  /*** free memory ***********/
    114     paranoid_free(incoming);
     115    mr_free(incoming);
    115116
    116117    paranoid_fclose(fout);
     
    147148    assert_string_is_neither_NULL_nor_zerolength(output_cfg_file);
    148149    assert_string_is_neither_NULL_nor_zerolength(output_mountlist_file);
    149     asprintf(&mountpt, "%s/mount.bootdisk", bkpinfo->tmpdir);
    150     asprintf(&command, "mkdir -p %s", mountpt);
     150    mr_asprintf(&mountpt, "%s/mount.bootdisk", bkpinfo->tmpdir);
     151    mr_asprintf(&command, "mkdir -p %s", mountpt);
    151152    run_program_and_log_output(command, FALSE);
    152     paranoid_free(command);
    153 
    154     asprintf(&command, "gzip -dc %s > %s/mindi.rd 2> /dev/null",
     153    mr_free(command);
     154
     155    mr_asprintf(&command, "gzip -dc %s > %s/mindi.rd 2> /dev/null",
    155156            ramdisk_fname, bkpinfo->tmpdir);
    156157    run_program_and_log_output(command, FALSE);
    157     paranoid_free(command);
    158 
    159     asprintf(&command, "umount %s", mountpt);
     158    mr_free(command);
     159
     160    mr_asprintf(&command, "umount %s", mountpt);
    160161    run_program_and_log_output(command, FALSE);
    161     paranoid_free(command);
    162 
    163     asprintf(&command, "mount -o loop %s/mindi.rd -t ext2 %s",
     162    mr_free(command);
     163
     164    mr_asprintf(&command, "mount -o loop %s/mindi.rd -t ext2 %s",
    164165            bkpinfo->tmpdir, mountpt);
    165166    run_program_and_log_output(command, FALSE);
    166     paranoid_free(command);
    167 
    168     asprintf(&command, "mkdir -p %s/tmp", bkpinfo->tmpdir);
     167    mr_free(command);
     168
     169    mr_asprintf(&command, "mkdir -p %s/tmp", bkpinfo->tmpdir);
    169170    run_program_and_log_output(command, FALSE);
    170     paranoid_free(command);
    171 
    172     asprintf(&command, "cp -f %s/%s %s",    // %s/%s becomes {mountpt}/tmp/m*ndo-restore.cfg
     171    mr_free(command);
     172
     173    mr_asprintf(&command, "cp -f %s/%s %s", // %s/%s becomes {mountpt}/tmp/m*ndo-restore.cfg
    173174            mountpt, g_mondo_cfg_file, output_cfg_file);
    174175    run_program_and_log_output(command, FALSE);
    175     paranoid_free(command);
    176 
    177     asprintf(&orig_fname, "%s/%s", mountpt, g_mountlist_fname);
     176    mr_free(command);
     177
     178    mr_asprintf(&orig_fname, "%s/%s", mountpt, g_mountlist_fname);
    178179    if (does_file_exist(orig_fname)) {
    179         asprintf(&command, "cp -f %s %s", orig_fname, output_mountlist_file);
     180        mr_asprintf(&command, "cp -f %s %s", orig_fname, output_mountlist_file);
    180181        run_program_and_log_output(command, FALSE);
    181         paranoid_free(command);
    182     }
    183     asprintf(&command, "umount %s", mountpt);
    184     paranoid_free(mountpt);
     182        mr_free(command);
     183    }
     184    mr_asprintf(&command, "umount %s", mountpt);
     185    mr_free(mountpt);
    185186
    186187    run_program_and_log_output(command, FALSE);
    187     paranoid_free(command);
     188    mr_free(command);
    188189
    189190    if (!does_file_exist(output_cfg_file)
     
    196197        retval = 0;
    197198    }
    198     paranoid_free(orig_fname);
     199    mr_free(orig_fname);
    199200    return (retval);
    200201}
     
    240241
    241242    if (strncmp(preamble, f, strlen(preamble)) == 0) {
    242         asprintf(&file, f + strlen(preamble));
    243     } else {
    244         asprintf(&file, f);
     243        mr_asprintf(&file, f + strlen(preamble));
     244    } else {
     245        mr_asprintf(&file, f);
    245246    }
    246247    if (file[0] == '/' && file[1] == '/') {
    247         asprintf(&tmp, file);
    248         paranoid_free(file);
    249         asprintf(&file, tmp + 1);
    250         paranoid_free(tmp);
    251     }
    252     asprintf(&tmp,
     248        mr_asprintf(&tmp, file);
     249        mr_free(file);
     250        mr_asprintf(&file, tmp + 1);
     251        mr_free(tmp);
     252    }
     253    mr_asprintf(&tmp,
    253254            "Checking to see if f=%s, file=%s, is in the list of biggiefiles",
    254255            f, file);
    255256    log_msg(2, tmp);
    256     paranoid_free(tmp);
    257 
    258     asprintf(&command, "grep -x \"%s\" %s", file, list_fname);
    259     paranoid_free(file);
     257    mr_free(tmp);
     258
     259    mr_asprintf(&command, "grep -x \"%s\" %s", file, list_fname);
     260    mr_free(file);
    260261
    261262    res = run_program_and_log_output(command, FALSE);
    262     paranoid_free(command);
     263    mr_free(command);
    263264    if (res) {
    264265        return (FALSE);
     
    292293    g_ISO_restore_mode = TRUE;
    293294
    294     paranoid_free(g_isodir_device);
     295    mr_free(g_isodir_device);
    295296    read_cfg_var(g_mondo_cfg_file, "iso-dev", g_isodir_device);
    296297    if (bkpinfo->disaster_recovery) {
     
    298299 * Don't let this clobber an existing bkpinfo->isodir */
    299300        if (!bkpinfo->isodir) {
    300             paranoid_alloc(bkpinfo->isodir, "/tmp/isodir");
     301            mr_allocstr(bkpinfo->isodir, "/tmp/isodir");
    301302        }
    302303/* End patch */
    303         asprintf(&command, "mkdir -p %s", bkpinfo->isodir);
     304        mr_asprintf(&command, "mkdir -p %s", bkpinfo->isodir);
    304305        run_program_and_log_output(command, 5);
    305         paranoid_free(command);
     306        mr_free(command);
    306307        log_msg(2, "Setting isodir to %s", bkpinfo->isodir);
    307308    }
     
    319320    } else {
    320321        if (g_isodir_format != NULL) {
    321             asprintf(&mount_isodir_command, "mount %s -t %s -o ro %s", g_isodir_device, g_isodir_format, bkpinfo->isodir);
     322            mr_asprintf(&mount_isodir_command, "mount %s -t %s -o ro %s", g_isodir_device, g_isodir_format, bkpinfo->isodir);
    322323        } else {
    323             asprintf(&mount_isodir_command, "mount %s -o ro %s", g_isodir_device, bkpinfo->isodir);
     324            mr_asprintf(&mount_isodir_command, "mount %s -o ro %s", g_isodir_device, bkpinfo->isodir);
    324325        }
    325326        run_program_and_log_output("df -m", FALSE);
    326         asprintf(&tmp,
     327        mr_asprintf(&tmp,
    327328                "The 'mount' command is '%s'. PLEASE report this command to be if you have problems, ok?",
    328329                mount_isodir_command);
    329330        log_msg(1, tmp);
    330         paranoid_free(tmp);
     331        mr_free(tmp);
    331332
    332333        if (run_program_and_log_output(mount_isodir_command, FALSE)) {
     
    334335                (_
    335336                 ("Cannot mount the device where the ISO files are stored."));
    336             paranoid_free(mount_isodir_command);
     337            mr_free(mount_isodir_command);
    337338            return (1);
    338339        }
    339         paranoid_free(mount_isodir_command);
     340        mr_free(mount_isodir_command);
    340341        log_to_screen
    341342            (_
     
    346347    }
    347348    i = what_number_cd_is_this(bkpinfo);    /* has the side-effect of calling mount_cdrom() */
    348     asprintf(&tmp, "%s #%d has been mounted via loopback mount",
     349    mr_asprintf(&tmp, "%s #%d has been mounted via loopback mount",
    349350            bkpinfo->backup_media_string, i);
    350351    log_msg(1, tmp);
    351     paranoid_free(tmp);
     352    mr_free(tmp);
    352353
    353354    if (i < 0) {
     
    368369{
    369370    char *command;
    370     asprintf(&command,
     371    mr_asprintf(&command,
    371372            "kill `ps 2> /dev/null | grep petris 2> /dev/null | grep -v grep | cut -d' ' -f2` 2> /dev/null");
    372373    paranoid_system(command);
    373     paranoid_free(command);
     374    mr_free(command);
    374375}
    375376
     
    413414                    "Again with the /proc - why is this in your mountlist?");
    414415        } else if (is_this_device_mounted(mountlist->el[lino].device)) {
    415             asprintf(&tmp, _("%s is already mounted"),
     416            mr_asprintf(&tmp, _("%s is already mounted"),
    416417                    mountlist->el[lino].device);
    417418            log_to_screen(tmp);
    418             paranoid_free(tmp);
     419            mr_free(tmp);
    419420        } else if (strcmp(mountlist->el[lino].mountpoint, "none")
    420421                   && strcmp(mountlist->el[lino].mountpoint, "lvm")
    421422                   && strcmp(mountlist->el[lino].mountpoint, "raid")
    422423                   && strcmp(mountlist->el[lino].mountpoint, "image")) {
    423             asprintf(&tmp, "Mounting %s", mountlist->el[lino].device);
     424            mr_asprintf(&tmp, "Mounting %s", mountlist->el[lino].device);
    424425            update_progress_form(tmp);
    425             paranoid_free(tmp);
    426 
    427             asprintf(&format, mountlist->el[lino].format);
     426            mr_free(tmp);
     427
     428            mr_asprintf(&format, mountlist->el[lino].format);
    428429            if (!strcmp(format, "ext3")) {
    429                 paranoid_free(format);
    430                 asprintf(&format, "ext2");
     430                mr_free(format);
     431                mr_asprintf(&format, "ext2");
    431432            }
    432433            res = mount_device(mountlist->el[lino].device,
     
    436437            if (res) {
    437438                if (these_failed != NULL) { /* not the first time */
    438                     asprintf(&tmp, "%s %s", these_failed, mountlist->el[lino].device);
    439                     paranoid_free(these_failed);
     439                    mr_asprintf(&tmp, "%s %s", these_failed, mountlist->el[lino].device);
     440                    mr_free(these_failed);
    440441                    these_failed = tmp;
    441442                } else { /* The first time */
    442                     asprintf(&these_failed, "%s ", mountlist->el[lino].device);
     443                    mr_asprintf(&these_failed, "%s ", mountlist->el[lino].device);
    443444                }
    444445            }
    445             paranoid_free(format);
     446            mr_free(format);
    446447        }
    447448        g_current_progress++;
     
    459460                          ("format and restore *without* partitioning first. Sorry for the inconvenience."));
    460461        }
    461         asprintf(&tmp, _("Could not mount devices %s- shall I abort?"),
     462        mr_asprintf(&tmp, _("Could not mount devices %s- shall I abort?"),
    462463                these_failed);
    463         paranoid_free(these_failed);
     464        mr_free(these_failed);
    464465
    465466        if (!ask_me_yes_or_no(tmp)) {
     
    474475                (_("Unable to mount some or all of your partitions."));
    475476        }
    476         paranoid_free(tmp);
     477        mr_free(tmp);
    477478    } else {
    478479        log_to_screen(_("All partitions were mounted OK."));
     
    480481    }
    481482    run_program_and_log_output("df -m", 3);
    482     paranoid_free(mountlist);
     483    mr_free(mountlist);
    483484    return (retval);
    484485}
     
    523524        if ((!bkpinfo->isodir || !strcmp(bkpinfo->isodir, "/"))
    524525            && am_I_in_disaster_recovery_mode()) {
    525             paranoid_alloc(bkpinfo->isodir, "/tmp/isodir");
     526            mr_allocstr(bkpinfo->isodir, "/tmp/isodir");
    526527            log_msg(1, "isodir is being set to %s", bkpinfo->isodir);
    527528        }
    528529#ifdef __FreeBSD__
    529         asprintf(&mount_cmd, "/mnt/isodir/%s/%s/%s-%d.iso", bkpinfo->isodir,
     530        mr_asprintf(&mount_cmd, "/mnt/isodir/%s/%s/%s-%d.iso", bkpinfo->isodir,
    530531                bkpinfo->nfs_remote_dir, bkpinfo->prefix,
    531532                g_current_media_number);
    532533        mddev = make_vn(mount_cmd);
    533         paranoid_free(mount_cmd);
    534 
    535         asprintf(&mount_cmd, "mount_cd9660 -r %s " MNT_CDROM, mddev);
    536         paranoid_free(mddev);
     534        mr_free(mount_cmd);
     535
     536        mr_asprintf(&mount_cmd, "mount_cd9660 -r %s " MNT_CDROM, mddev);
     537        mr_free(mddev);
    537538#else
    538         asprintf(&mount_cmd,
     539        mr_asprintf(&mount_cmd,
    539540                "mount %s/%s/%s-%d.iso -t iso9660 -o loop,ro %s",
    540541                bkpinfo->isodir, bkpinfo->nfs_remote_dir, bkpinfo->prefix,
     
    544545    } else if (bkpinfo->backup_media_type == iso) {
    545546#ifdef __FreeBSD__
    546         asprintf(&mount_cmd, "%s/%s-%d.iso", bkpinfo->isodir,
     547        mr_asprintf(&mount_cmd, "%s/%s-%d.iso", bkpinfo->isodir,
    547548                bkpinfo->prefix, g_current_media_number);
    548549        mddev = make_vn(mount_cmd);
    549         paranoid_free(mount_cmd);
    550 
    551         asprintf(&mount_cmd, "mount_cd9660 -r %s %s", mddev, MNT_CDROM);
    552         paranoid_free(mddev);
     550        mr_free(mount_cmd);
     551
     552        mr_asprintf(&mount_cmd, "mount_cd9660 -r %s %s", mddev, MNT_CDROM);
     553        mr_free(mddev);
    553554#else
    554         asprintf(&mount_cmd, "mount %s/%s-%d.iso -t iso9660 -o loop,ro %s",
     555        mr_asprintf(&mount_cmd, "mount %s/%s-%d.iso -t iso9660 -o loop,ro %s",
    555556                bkpinfo->isodir, bkpinfo->prefix, g_current_media_number,
    556557                MNT_CDROM);
     
    559560#ifdef __FreeBSD__
    560561    {
    561         asprintf(&mount_cmd, "mount_cd9660 -r %s %s", bkpinfo->media_device,
     562        mr_asprintf(&mount_cmd, "mount_cd9660 -r %s %s", bkpinfo->media_device,
    562563                MNT_CDROM);
    563564    }
    564565#else
    565566    {
    566         asprintf(&mount_cmd, "mount %s -t iso9660 -o ro %s",
     567        mr_asprintf(&mount_cmd, "mount %s -t iso9660 -o ro %s",
    567568                bkpinfo->media_device, MNT_CDROM);
    568569    }
     
    572573        if (bkpinfo->disaster_recovery
    573574            && does_file_exist("/tmp/CDROM-LIVES-HERE")) {
    574             paranoid_free(bkpinfo->media_device);
     575            mr_free(bkpinfo->media_device);
    575576            bkpinfo->media_device = last_line_of_file("/tmp/CDROM-LIVES-HERE");
    576577        } else {
    577             paranoid_free(bkpinfo->media_device);
     578            mr_free(bkpinfo->media_device);
    578579            bkpinfo->media_device = find_cdrom_device(TRUE);
    579580        }
    580581
    581582#ifdef __FreeBSD__
    582         asprintf(&mount_cmd, "mount_cd9660 -r %s %s", bkpinfo->media_device,
     583        mr_asprintf(&mount_cmd, "mount_cd9660 -r %s %s", bkpinfo->media_device,
    583584                MNT_CDROM);
    584585#else
    585         asprintf(&mount_cmd, "mount %s -t iso9660 -o ro %s",
     586        mr_asprintf(&mount_cmd, "mount %s -t iso9660 -o ro %s",
    586587                bkpinfo->media_device, MNT_CDROM);
    587588#endif
     
    599600        }
    600601    }
    601     paranoid_free(mount_cmd);
     602    mr_free(mount_cmd);
    602603
    603604    if (res) {
     
    639640
    640641    if (!strcmp(mpt, "/1")) {
    641         asprintf(&mountpoint, "/");
     642        mr_asprintf(&mountpoint, "/");
    642643        log_msg(3, "Mommm! SME is being a dildo!");
    643644    } else {
    644         asprintf(&mountpoint, mpt);
     645        mr_asprintf(&mountpoint, mpt);
    645646    }
    646647
    647648    if (!strcmp(mountpoint, "lvm")) {
    648         paranoid_free(mountpoint);
     649        mr_free(mountpoint);
    649650        return (0);
    650651    }
    651652    if (!strcmp(mountpoint, "image")) {
    652         paranoid_free(mountpoint);
     653        mr_free(mountpoint);
    653654        return (0);
    654655    }
    655     asprintf(&tmp, "Mounting device %s   ", device);
     656    mr_asprintf(&tmp, "Mounting device %s   ", device);
    656657    log_msg(1, tmp);
    657658
    658659    if (writeable) {
    659         asprintf(&p1, "-o rw");
    660     } else {
    661         asprintf(&p1, "-o ro");
     660        mr_asprintf(&p1, "-o rw");
     661    } else {
     662        mr_asprintf(&p1, "-o ro");
    662663    }
    663664    tmp = find_home_of_exe("setfattr");
    664665    if (tmp) {
    665         asprintf(&p2, ",user_xattr");
    666     } else {
    667         asprintf(&p2, "%s", "");
    668     }
    669     paranoid_free(tmp);
     666        mr_asprintf(&p2, ",user_xattr");
     667    } else {
     668        mr_asprintf(&p2, "%s", "");
     669    }
     670    mr_free(tmp);
    670671
    671672    tmp = find_home_of_exe("setfacl");
    672673    if (tmp) {
    673         asprintf(&p3, ",acl");
    674     } else {
    675         asprintf(&p3, "%s", "");
    676     }
    677     paranoid_free(tmp);
    678 
    679     asprintf(&additional_parameters, "%s%s%s", p1, p2, p3);
    680     paranoid_free(p1);
    681     paranoid_free(p2);
    682     paranoid_free(p3);
     674        mr_asprintf(&p3, ",acl");
     675    } else {
     676        mr_asprintf(&p3, "%s", "");
     677    }
     678    mr_free(tmp);
     679
     680    mr_asprintf(&additional_parameters, "%s%s%s", p1, p2, p3);
     681    mr_free(p1);
     682    mr_free(p2);
     683    mr_free(p3);
    683684
    684685    if (!strcmp(mountpoint, "swap")) {
    685         asprintf(&command, "swapon %s", device);
     686        mr_asprintf(&command, "swapon %s", device);
    686687    } else {
    687688        if (!strcmp(mountpoint, "/")) {
    688             asprintf(&mountdir, MNT_RESTORING);
     689            mr_asprintf(&mountdir, MNT_RESTORING);
    689690        } else {
    690             asprintf(&mountdir, "%s%s", MNT_RESTORING, mountpoint);
    691         }
    692         asprintf(&command, "mkdir -p %s", mountdir);
     691            mr_asprintf(&mountdir, "%s%s", MNT_RESTORING, mountpoint);
     692        }
     693        mr_asprintf(&command, "mkdir -p %s", mountdir);
    693694        run_program_and_log_output(command, FALSE);
    694         paranoid_free(command);
    695 
    696         asprintf(&command, "mount -t %s %s %s %s 2>> %s", format, device,
     695        mr_free(command);
     696
     697        mr_asprintf(&command, "mount -t %s %s %s %s 2>> %s", format, device,
    697698                additional_parameters, mountdir, MONDO_LOGFILE);
    698699        log_msg(2, "command='%s'", command);
    699700    }
    700     paranoid_free(additional_parameters);
     701    mr_free(additional_parameters);
    701702
    702703    res = run_program_and_log_output(command, TRUE);
    703704    if (res && (strstr(command, "xattr") || strstr(command, "acl"))) {
    704705        log_msg(1, "Re-trying without the fancy extra parameters");
    705         paranoid_free(command);
    706 
    707         asprintf(&command, "mount -t %s %s %s 2>> %s", format, device,
     706        mr_free(command);
     707
     708        mr_asprintf(&command, "mount -t %s %s %s 2>> %s", format, device,
    708709                mountdir, MONDO_LOGFILE);
    709710        res = run_program_and_log_output(command, TRUE);
     
    717718        } else {
    718719            log_msg(2, "Retrying w/o the '-t' switch");
    719             paranoid_free(command);
    720 
    721             asprintf(&command, "mount %s %s 2>> %s", device, mountdir,
     720            mr_free(command);
     721
     722            mr_asprintf(&command, "mount %s %s 2>> %s", device, mountdir,
    722723                    MONDO_LOGFILE);
    723724            log_msg(2, "2nd command = '%s'", command);
     
    731732        }
    732733    }
    733     paranoid_free(tmp);
    734     paranoid_free(command);
    735     paranoid_free(mountdir);
     734    mr_free(tmp);
     735    mr_free(command);
     736    mr_free(mountdir);
    736737
    737738    if (res && !strcmp(mountpoint, "swap")) {
     
    740741        res = 0;
    741742    }
    742     paranoid_free(mountpoint);
     743    mr_free(mountpoint);
    743744
    744745    return (res);
     
    836837                }
    837838            }
    838             paranoid_free(value);
     839            mr_free(value);
    839840
    840841            if (read_cfg_var(cfg_file, "iso-prefix", value) == 0) {
    841                 paranoid_alloc(bkpinfo->prefix,value);
     842                mr_allocstr(bkpinfo->prefix,value);
    842843            } else {
    843                 paranoid_alloc(bkpinfo->prefix, STD_PREFIX);
     844                mr_allocstr(bkpinfo->prefix, STD_PREFIX);
    844845            }
    845846        } else if (!strcmp(value, "nfs")) {
    846847            bkpinfo->backup_media_type = nfs;
    847             paranoid_free(value);
     848            mr_free(value);
    848849            if (read_cfg_var(cfg_file, "iso-prefix", value) == 0) {
    849                 paranoid_alloc(bkpinfo->prefix,value);
     850                mr_allocstr(bkpinfo->prefix,value);
    850851            } else {
    851                 paranoid_alloc(bkpinfo->prefix, STD_PREFIX);
     852                mr_allocstr(bkpinfo->prefix, STD_PREFIX);
    852853            }
    853854            /* We need to override prefix value in PXE mode as it's
     
    868869        fatal_error("backup-media-type not specified!");
    869870    }
    870     paranoid_free(value);
     871    mr_free(value);
    871872
    872873    if (bkpinfo->disaster_recovery) {
    873874        if (bkpinfo->backup_media_type == cdstream) {
    874             paranoid_alloc(bkpinfo->media_device, "/dev/cdrom");
     875            mr_allocstr(bkpinfo->media_device, "/dev/cdrom");
    875876            bkpinfo->media_size[0] = 1999 * 1024;
    876877            bkpinfo->media_size[1] = 650;   /* good guess */
    877878        } else if (bkpinfo->backup_media_type == tape
    878879                   || bkpinfo->backup_media_type == udev) {
    879             paranoid_free(bkpinfo->media_device);
     880            mr_free(bkpinfo->media_device);
    880881            if (read_cfg_var(cfg_file, "media-dev", bkpinfo->media_device)) {
    881882                fatal_error("Cannot get tape device name from cfg file");
     
    883884            read_cfg_var(cfg_file, "media-size", value);
    884885            bkpinfo->media_size[1] = atol(value);
    885             paranoid_free(value);
    886 
    887             asprintf(&tmp, "Backup medium is TAPE --- dev=%s",
     886            mr_free(value);
     887
     888            mr_asprintf(&tmp, "Backup medium is TAPE --- dev=%s",
    888889                    bkpinfo->media_device);
    889890            log_msg(2, tmp);
    890             paranoid_free(tmp);
     891            mr_free(tmp);
    891892        } else {
    892             paranoid_alloc(bkpinfo->media_device, "/dev/cdrom");
     893            mr_allocstr(bkpinfo->media_device, "/dev/cdrom");
    893894            bkpinfo->media_size[0] = 1999 * 1024;   /* 650, probably, but we don't need this var anyway */
    894895            bkpinfo->media_size[1] = 1999 * 1024;   /* 650, probably, but we don't need this var anyway */
     
    905906        log_msg(1, "Goody! ... bkpinfo->use_star is now true.");
    906907    }
    907     paranoid_free(value);
     908    mr_free(value);
    908909
    909910    if (0 == read_cfg_var(cfg_file, "internal-tape-block-size", value)) {
     
    917918                DEFAULT_INTERNAL_TAPE_BLOCK_SIZE);
    918919    }
    919     paranoid_free(value);
     920    mr_free(value);
    920921
    921922    read_cfg_var(cfg_file, "use-lzo", value);
    922923    if (strstr(value, "yes")) {
    923924        bkpinfo->use_lzo = TRUE;
    924         paranoid_alloc(bkpinfo->zip_exe, "lzop");
    925         paranoid_alloc(bkpinfo->zip_suffix, "lzo");
    926     } else {
    927         paranoid_free(value);
     925        mr_allocstr(bkpinfo->zip_exe, "lzop");
     926        mr_allocstr(bkpinfo->zip_suffix, "lzo");
     927    } else {
     928        mr_free(value);
    928929        read_cfg_var(cfg_file, "use-comp", value);
    929930        if (strstr(value, "yes")) {
    930931            bkpinfo->use_lzo = FALSE;
    931             paranoid_alloc(bkpinfo->zip_exe, "bzip2");
    932             paranoid_alloc(bkpinfo->zip_suffix, "bz2");
     932            mr_allocstr(bkpinfo->zip_exe, "bzip2");
     933            mr_allocstr(bkpinfo->zip_suffix, "bz2");
    933934        } else {
    934935            // Just to be sure
     
    937938        }
    938939    }
    939     paranoid_free(value);
     940    mr_free(value);
    940941
    941942    read_cfg_var(cfg_file, "differential", value);
     
    944945    }
    945946    log_msg(2, "differential var = '%s'", value);
    946     paranoid_free(value);
     947    mr_free(value);
    947948
    948949    if (bkpinfo->differential) {
     
    962963        log_msg(2, "Ok, I shan't eject when restoring! Groovy.");
    963964    }
    964     paranoid_free(tmp);
    965     paranoid_free(tmp1);
     965    mr_free(tmp);
     966    mr_free(tmp1);
    966967
    967968    if (bkpinfo->backup_media_type == nfs) {
     
    973974                    "...cos it wouldn't make sense to abandon the values that GOT ME to this config file in the first place");
    974975        } else {
    975             paranoid_free(bkpinfo->nfs_mount);
    976             paranoid_free(bkpinfo->nfs_remote_dir);
     976            mr_free(bkpinfo->nfs_mount);
     977            mr_free(bkpinfo->nfs_remote_dir);
    977978            read_cfg_var(g_mondo_cfg_file, "nfs-server-mount",
    978979                         bkpinfo->nfs_mount);
     
    994995         * isodir in disaster recovery mode
    995996         */
    996         paranoid_alloc(old_isodir,bkpinfo->isodir);
     997        mr_allocstr(old_isodir,bkpinfo->isodir);
    997998        read_cfg_var(g_mondo_cfg_file, "iso-mnt", iso_mnt);
    998999        read_cfg_var(g_mondo_cfg_file, "isodir", iso_path);
    9991000        if (iso_mnt && iso_path) {
    1000             paranoid_free(bkpinfo->isodir);
    1001             asprintf(&bkpinfo->isodir, "%s%s", iso_mnt, iso_path);
    1002         }
    1003         paranoid_free(iso_mnt);
    1004         paranoid_free(iso_path);
     1001            mr_free(bkpinfo->isodir);
     1002            mr_asprintf(&bkpinfo->isodir, "%s%s", iso_mnt, iso_path);
     1003        }
     1004        mr_free(iso_mnt);
     1005        mr_free(iso_path);
    10051006
    10061007        if (!bkpinfo->disaster_recovery) {
     
    10111012            }
    10121013        }
    1013         paranoid_free(old_isodir);
    1014 
    1015         paranoid_free(g_isodir_device);
     1014        mr_free(old_isodir);
     1015
     1016        mr_free(g_isodir_device);
    10161017        read_cfg_var(g_mondo_cfg_file, "iso-dev", g_isodir_device);
    10171018        log_msg(2, "isodir=%s; iso-dev=%s", bkpinfo->isodir, g_isodir_device);
     
    10201021                log_msg(2, "NB: isodir is already mounted");
    10211022                /* Find out where it's mounted */
    1022                 asprintf(&command,
     1023                mr_asprintf(&command,
    10231024                        "mount | grep -w %s | tail -n1 | cut -d' ' -f3",
    10241025                        g_isodir_device);
     
    10271028                log_it("res of it = %s", tmp);
    10281029                iso_mnt = tmp;
    1029                 paranoid_free(command);
     1030                mr_free(command);
    10301031            } else {
    1031                 asprintf(&iso_mnt, "/tmp/isodir");
    1032                 asprintf(&tmp, "mkdir -p %s", iso_mnt);
     1032                mr_asprintf(&iso_mnt, "/tmp/isodir");
     1033                mr_asprintf(&tmp, "mkdir -p %s", iso_mnt);
    10331034                run_program_and_log_output(tmp, 5);
    1034                 paranoid_free(tmp);
    1035 
    1036                 asprintf(&tmp, "mount %s %s", g_isodir_device, iso_mnt);
     1035                mr_free(tmp);
     1036
     1037                mr_asprintf(&tmp, "mount %s %s", g_isodir_device, iso_mnt);
    10371038                if (run_program_and_log_output(tmp, 3)) {
    10381039                    log_msg(1,
    10391040                            "Unable to mount isodir. Perhaps this is really a CD backup?");
    10401041                    bkpinfo->backup_media_type = cdr;
    1041                     paranoid_alloc(bkpinfo->media_device, "/dev/cdrom");
    1042                     paranoid_free(bkpinfo->isodir);
    1043                     paranoid_free(iso_mnt);
    1044                     paranoid_free(iso_path);
    1045                     asprintf(&iso_mnt, "%s", "");
    1046                     asprintf(&iso_path, "%s", "");
     1042                    mr_allocstr(bkpinfo->media_device, "/dev/cdrom");
     1043                    mr_free(bkpinfo->isodir);
     1044                    mr_free(iso_mnt);
     1045                    mr_free(iso_path);
     1046                    mr_asprintf(&iso_mnt, "%s", "");
     1047                    mr_asprintf(&iso_path, "%s", "");
    10471048
    10481049                    if (mount_cdrom(bkpinfo)) {
     
    10541055                    }
    10551056                }
    1056                 paranoid_free(tmp);
     1057                mr_free(tmp);
    10571058            }
    10581059            /* bkpinfo->isodir should now be the true path to prefix-1.iso etc... */
    10591060            if (bkpinfo->backup_media_type == iso) {
    1060                 paranoid_free(bkpinfo->isodir);
    1061                 asprintf(&bkpinfo->isodir, "%s%s", iso_mnt, iso_path);
    1062             }
    1063             paranoid_free(iso_mnt);
    1064             paranoid_free(iso_path);
     1061                mr_free(bkpinfo->isodir);
     1062                mr_asprintf(&bkpinfo->isodir, "%s%s", iso_mnt, iso_path);
     1063            }
     1064            mr_free(iso_mnt);
     1065            mr_free(iso_path);
    10651066        }
    10661067    }
     
    11311132        unlink("/tmp/i-want-my-lvm");
    11321133        if (IS_THIS_A_STREAMING_BACKUP(bkpinfo->backup_media_type)) {
    1133             asprintf(&command,
     1134            mr_asprintf(&command,
    11341135                    "tar -zxf %s %s %s %s %s %s",
    11351136                    bkpinfo->media_device,
     
    11401141            log_msg(1, "tarcommand = %s", command);
    11411142            run_program_and_log_output(command, 1);
    1142             paranoid_free(command);
     1143            mr_free(command);
    11431144        } else {
    11441145            log_msg(2,
     
    11481149            log_msg(2, "Back from iotcn");
    11491150            run_program_and_log_output("mount", 1);
    1150             asprintf(&command,
     1151            mr_asprintf(&command,
    11511152                    "tar -zxf %s/images/all.tar.gz %s %s %s %s %s",
    11521153                    MNT_CDROM,
     
    11581159            log_msg(1, "tarcommand = %s", command);
    11591160            run_program_and_log_output(command, 1);
    1160             paranoid_free(command);
     1161            mr_free(command);
    11611162
    11621163            if (!does_file_exist(BIGGIELIST_TXT_STUB)) {
     
    11691170            }
    11701171        }
    1171         asprintf(&command, "cp -f %s %s", MONDO_CFG_FILE_STUB,
     1172        mr_asprintf(&command, "cp -f %s %s", MONDO_CFG_FILE_STUB,
    11721173                g_mondo_cfg_file);
    11731174        run_program_and_log_output(command, FALSE);
    1174         paranoid_free(command);
    1175 
    1176         asprintf(&command, "cp -f %s/%s %s", bkpinfo->tmpdir,
     1175        mr_free(command);
     1176
     1177        mr_asprintf(&command, "cp -f %s/%s %s", bkpinfo->tmpdir,
    11771178                BIGGIELIST_TXT_STUB, g_biggielist_txt);
    11781179        log_msg(1, "command = %s", command);
    11791180        paranoid_system(command);
    1180         paranoid_free(command);
    1181 
    1182         asprintf(&command, "ln -sf %s/%s %s", bkpinfo->tmpdir,
     1181        mr_free(command);
     1182
     1183        mr_asprintf(&command, "ln -sf %s/%s %s", bkpinfo->tmpdir,
    11831184                FILELIST_FULL_STUB, g_filelist_full);
    11841185        log_msg(1, "command = %s", command);
    11851186        paranoid_system(command);
    1186         paranoid_free(command);
     1187        mr_free(command);
    11871188    }
    11881189
     
    11921193                         ("Do you want to retrieve the mountlist as well?")))
    11931194    {
    1194         asprintf(&command, "ln -sf %s/%s /tmp", MOUNTLIST_FNAME_STUB,
     1195        mr_asprintf(&command, "ln -sf %s/%s /tmp", MOUNTLIST_FNAME_STUB,
    11951196                bkpinfo->tmpdir);
    11961197        paranoid_system(command);
    1197         paranoid_free(command);
     1198        mr_free(command);
    11981199    }
    11991200
    12001201    chdir(tmp);
    1201     paranoid_free(tmp);
     1202    mr_free(tmp);
    12021203
    12031204    if (!does_file_exist(g_biggielist_txt)) {
     
    12191220        log_to_screen(("Pre-processing filelist"));
    12201221        if (!does_file_exist(g_biggielist_txt)) {
    1221             asprintf(&command, "> %s", g_biggielist_txt);
     1222            mr_asprintf(&command, "> %s", g_biggielist_txt);
    12221223            paranoid_system(command);
    1223             paranoid_free(command);
    1224         }
    1225         asprintf(&command, "grep  -x \"/dev/.*\" %s > %s",
     1224            mr_free(command);
     1225        }
     1226        mr_asprintf(&command, "grep  -x \"/dev/.*\" %s > %s",
    12261227                g_biggielist_txt, g_filelist_imagedevs);
    12271228        paranoid_system(command);
    1228         paranoid_free(command);
     1229        mr_free(command);
    12291230        exit(0);
    12301231        break;
     
    12451246    if (g_text_mode) {
    12461247        printf(_("Restore which directory? --> "));
    1247         getline(&tmp, &n, stdin);
     1248        mr_getline(&tmp, &n, stdin);
    12481249        toggle_path_selection(filelist, tmp, TRUE);
    12491250        if (strlen(tmp) == 0) {
     
    12521253            res = 0;
    12531254        }
    1254         paranoid_free(tmp);
     1255        mr_free(tmp);
    12551256    } else {
    12561257        res = edit_filelist(filelist);
     
    12961297    assert_string_is_neither_NULL_nor_zerolength(filename);
    12971298
    1298     asprintf(&command, "cp -f %s/%s %s/%s.pristine", path_root, filename,path_root, filename);
     1299    mr_asprintf(&command, "cp -f %s/%s %s/%s.pristine", path_root, filename,path_root, filename);
    12991300    res = run_program_and_log_output(command, 5);
    1300     paranoid_free(command);
     1301    mr_free(command);
    13011302    return (res);
    13021303}
     
    13241325    read_cfg_var(g_mondo_cfg_file, "bootloader.device", device);
    13251326    read_cfg_var(g_mondo_cfg_file, "bootloader.name", name);
    1326     asprintf(&tmp, "run_boot_loader: device='%s', name='%s'", device, name);
     1327    mr_asprintf(&tmp, "run_boot_loader: device='%s', name='%s'", device, name);
    13271328    log_msg(2, tmp);
    1328     paranoid_free(tmp);
     1329    mr_free(tmp);
    13291330
    13301331    sync();
     
    13491350#ifdef __FreeBSD__
    13501351    else if (!strcmp(name, "BOOT0")) {
    1351         asprintf(&tmp, "boot0cfg -B %s", device);
     1352        mr_asprintf(&tmp, "boot0cfg -B %s", device);
    13521353        res = run_program_and_log_output(tmp, FALSE);
    1353         paranoid_free(tmp);
    1354     } else {
    1355         asprintf(&tmp, "ls /dev | grep -xq %ss[1-4].*", device);
     1354        mr_free(tmp);
     1355    } else {
     1356        mr_asprintf(&tmp, "ls /dev | grep -xq %ss[1-4].*", device);
    13561357        if (!system(tmp)) {
    1357             paranoid_free(tmp);
    1358             asprintf(&tmp, MNT_RESTORING "/sbin/fdisk -B %s", device);
     1358            mr_free(tmp);
     1359            mr_asprintf(&tmp, MNT_RESTORING "/sbin/fdisk -B %s", device);
    13591360            res = run_program_and_log_output(tmp, 3);
    13601361        } else {
     
    13621363                    "I'm not running any boot loader. You have a DD boot drive. It's already loaded up.");
    13631364        }
    1364         paranoid_free(tmp);
     1365        mr_free(tmp);
    13651366    }
    13661367#else
     
    13721373    }
    13731374#endif
    1374     paranoid_free(device);
    1375     paranoid_free(name);
     1375    mr_free(device);
     1376    mr_free(name);
    13761377
    13771378    retval += res;
     
    14011402    tmp = find_home_of_exe("pico");
    14021403    if (tmp) {
    1403         asprintf(&output, "pico");
     1404        mr_asprintf(&output, "pico");
    14041405    } else {
    14051406        tmp = find_home_of_exe("nano");
    14061407        if (tmp) {
    1407             asprintf(&output, "nano");
     1408            mr_asprintf(&output, "nano");
    14081409        } else {
    14091410            tmp = find_home_of_exe("vi");
    14101411            if (tmp) {
    1411                 asprintf(&output, "vi");
     1412                mr_asprintf(&output, "vi");
    14121413            } else {
    1413                 asprintf(&output, "emacs");
    1414             }
    1415         }
    1416     }
    1417     paranoid_free(tmp);
     1414                mr_asprintf(&output, "emacs");
     1415            }
     1416        }
     1417    }
     1418    mr_free(tmp);
    14181419
    14191420    tmp = find_home_of_exe(output);
     
    14211422        log_msg(2, " (find_my_editor) --- warning - %s not found", output);
    14221423    }
    1423     paranoid_free(tmp);
     1424    mr_free(tmp);
    14241425    return (output);
    14251426}
     
    14541455            popup_and_get_string(_("Boot device"),
    14551456                                 _("Please confirm/enter the boot device. If in doubt, try /dev/hda"), bd);
    1456             asprintf(&command, "stabgrub-me %s", bd);
     1457            mr_asprintf(&command, "stabgrub-me %s", bd);
    14571458            res = run_program_and_log_output(command, 1);
    1458             paranoid_free(command);
     1459            mr_free(command);
    14591460
    14601461            if (res) {
     
    14741475            }
    14751476            editor = find_my_editor();
    1476             asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
     1477            mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
    14771478            paranoid_system(tmp);
    1478             paranoid_free(tmp);
    1479 
    1480             asprintf(&tmp, "%s " MNT_RESTORING "/etc/grub.conf", editor);
    1481             paranoid_free(editor);
     1479            mr_free(tmp);
     1480
     1481            mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/grub.conf", editor);
     1482            mr_free(editor);
    14821483
    14831484            paranoid_system(tmp);
    1484             paranoid_free(tmp);
     1485            mr_free(tmp);
    14851486
    14861487            if (!g_text_mode) {
     
    14921493        if (!run_program_and_log_output("which grub-MR", FALSE)) {
    14931494            log_msg(1, "Yay! grub-MR found...");
    1494             asprintf(&command, "grub-MR %s /tmp/mountlist.txt", bd);
     1495            mr_asprintf(&command, "grub-MR %s /tmp/mountlist.txt", bd);
    14951496            log_msg(1, "command = %s", command);
    14961497        } else {
    1497             asprintf(&command, "chroot " MNT_RESTORING " grub-install %s", bd);
     1498            mr_asprintf(&command, "chroot " MNT_RESTORING " grub-install %s", bd);
    14981499            log_msg(1, "WARNING - grub-MR not found; using grub-install");
    14991500        }
     
    15041505        iamhere(command);
    15051506        res = run_program_and_log_output(command, 1);
    1506         paranoid_free(command);
     1507        mr_free(command);
    15071508
    15081509        if (res) {
     
    15631564                            _
    15641565                            ("Modifying fstab and elilo.conf...                             "));
    1565         asprintf(&command, "stabelilo-me");
     1566        mr_asprintf(&command, "stabelilo-me");
    15661567        res = run_program_and_log_output(command, 3);
    1567         paranoid_free(command);
     1568        mr_free(command);
    15681569
    15691570        if (res) {
     
    15761577                }
    15771578                editor = find_my_editor();
    1578                 asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
     1579                mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
    15791580                paranoid_system(tmp);
    1580                 paranoid_free(tmp);
    1581 
    1582                 asprintf(&tmp, "%s " MNT_RESTORING "/etc/elilo.conf", editor);
    1583                 paranoid_free(editor);
     1581                mr_free(tmp);
     1582
     1583                mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/elilo.conf", editor);
     1584                mr_free(editor);
    15841585
    15851586                paranoid_system(tmp);
    1586                 paranoid_free(tmp);
     1587                mr_free(tmp);
    15871588
    15881589                if (!g_text_mode) {
     
    16381639                            _
    16391640                            ("Modifying fstab and lilo.conf, and running LILO...                             "));
    1640         asprintf(&command, "stablilo-me");
     1641        mr_asprintf(&command, "stablilo-me");
    16411642        res = run_program_and_log_output(command, 3);
    1642         paranoid_free(command);
     1643        mr_free(command);
    16431644
    16441645        if (res) {
     
    16511652                }
    16521653                editor = find_my_editor();
    1653                 asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
     1654                mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
    16541655                paranoid_system(tmp);
    1655                 paranoid_free(tmp);
    1656 
    1657                 asprintf(&tmp, "%s " MNT_RESTORING "/etc/lilo.conf", editor);
    1658                 paranoid_free(editor);
     1656                mr_free(tmp);
     1657
     1658                mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/lilo.conf", editor);
     1659                mr_free(editor);
    16591660
    16601661                paranoid_system(tmp);
    1661                 paranoid_free(tmp);
     1662                mr_free(tmp);
    16621663
    16631664                if (!g_text_mode) {
     
    17531754                }
    17541755                editor = find_my_editor();
    1755                 asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
    1756                 paranoid_free(editor);
     1756                mr_asprintf(&tmp, "%s " MNT_RESTORING "/etc/fstab", editor);
     1757                mr_free(editor);
    17571758
    17581759                paranoid_system(tmp);
    1759                 paranoid_free(tmp);
     1760                mr_free(tmp);
    17601761
    17611762                if (!g_text_mode) {
     
    17671768                                 _
    17681769                                 ("Please confirm/enter the boot device. If in doubt, try /dev/hda"), bd);
    1769             asprintf(&command, "stabraw-me %s", bd);
     1770            mr_asprintf(&command, "stabraw-me %s", bd);
    17701771            res = run_program_and_log_output(command, 3);
    1771             paranoid_free(command);
     1772            mr_free(command);
    17721773
    17731774            if (res) {
     
    17831784                            _
    17841785                            ("Restoring MBR...                                               "));
    1785         asprintf(&command, "raw-MR %s /tmp/mountlist.txt", bd);
     1786        mr_asprintf(&command, "raw-MR %s /tmp/mountlist.txt", bd);
    17861787        log_msg(2, "run_raw_mbr() --- command='%s'", command);
    17871788        res = run_program_and_log_output(command, 3);
    1788         paranoid_free(command);
     1789        mr_free(command);
    17891790    }
    17901791    if (res) {
     
    18391840    assert(bkpinfo != NULL);
    18401841
    1841     asprintf(&g_biggielist_txt, "%s/%s",bkpinfo->tmpdir , BIGGIELIST_TXT_STUB);
    1842     asprintf(&g_filelist_full, "%s/%s", bkpinfo->tmpdir, FILELIST_FULL_STUB);
    1843     asprintf(&g_filelist_imagedevs, "%s/tmp/filelist.imagedevs", bkpinfo->tmpdir);
    1844     asprintf(&g_imagedevs_restthese, "%s/tmp/imagedevs.restore-these",
     1842    mr_asprintf(&g_biggielist_txt, "%s/%s",bkpinfo->tmpdir , BIGGIELIST_TXT_STUB);
     1843    mr_asprintf(&g_filelist_full, "%s/%s", bkpinfo->tmpdir, FILELIST_FULL_STUB);
     1844    mr_asprintf(&g_filelist_imagedevs, "%s/tmp/filelist.imagedevs", bkpinfo->tmpdir);
     1845    mr_asprintf(&g_imagedevs_restthese, "%s/tmp/imagedevs.restore-these",
    18451846            bkpinfo->tmpdir);
    1846     paranoid_free(g_mondo_cfg_file);
    1847     paranoid_free(g_mountlist_fname);
     1847    mr_free(g_mondo_cfg_file);
     1848    mr_free(g_mountlist_fname);
    18481849    if (bkpinfo->disaster_recovery) {
    1849         asprintf(&g_mondo_cfg_file, "/%s", MONDO_CFG_FILE_STUB);
    1850         asprintf(&g_mountlist_fname, "/%s", MOUNTLIST_FNAME_STUB);
    1851     } else {
    1852         asprintf(&g_mondo_cfg_file, "%s/%s", bkpinfo->tmpdir, MONDO_CFG_FILE_STUB);
    1853         asprintf(&g_mountlist_fname, "%s/%s", bkpinfo->tmpdir, MOUNTLIST_FNAME_STUB);
     1850        mr_asprintf(&g_mondo_cfg_file, "/%s", MONDO_CFG_FILE_STUB);
     1851        mr_asprintf(&g_mountlist_fname, "/%s", MOUNTLIST_FNAME_STUB);
     1852    } else {
     1853        mr_asprintf(&g_mondo_cfg_file, "%s/%s", bkpinfo->tmpdir, MONDO_CFG_FILE_STUB);
     1854        mr_asprintf(&g_mountlist_fname, "%s/%s", bkpinfo->tmpdir, MOUNTLIST_FNAME_STUB);
    18541855    }
    18551856}
     
    18821883        fatal_error("cannot open output_file");
    18831884    }
    1884     for (getline(&incoming, &n, fin); !feof(fin);
    1885          getline(&incoming, &n, fin)) {
     1885    for (mr_getline(&incoming, &n, fin); !feof(fin);
     1886         mr_getline(&incoming, &n, fin)) {
    18861887        if (strncmp(incoming, "etc/adjtime", 11)
    18871888            && strncmp(incoming, "etc/mtab", 8)
     
    18931894            fprintf(fout, "%s", incoming);  /* don't need \n here, for some reason.. */
    18941895    }
    1895     paranoid_free(incoming);
     1896    mr_free(incoming);
    18961897    paranoid_fclose(fout);
    18971898    paranoid_fclose(fin);
     
    19361937    for (i = 0; i < 20; i++) {
    19371938        g_current_progress = i;
    1938         asprintf(&tmp, _("You have %d seconds left to abort."), 20 - i);
     1939        mr_asprintf(&tmp, _("You have %d seconds left to abort."), 20 - i);
    19391940        update_progress_form(tmp);
    1940         paranoid_free(tmp);
     1941        mr_free(tmp);
    19411942        sleep(1);
    19421943    }
     
    20252026            continue;
    20262027        }
    2027         asprintf(&tmp, _("Unmounting device %s  "),
     2028        mr_asprintf(&tmp, _("Unmounting device %s  "),
    20282029                mountlist->el[lino].device);
    20292030
     
    20322033        if (is_this_device_mounted(mountlist->el[lino].device)) {
    20332034            if (!strcmp(mountlist->el[lino].mountpoint, "swap")) {
    2034                 asprintf(&command, "swapoff %s", mountlist->el[lino].device);
     2035                mr_asprintf(&command, "swapoff %s", mountlist->el[lino].device);
    20352036            } else {
    20362037                if (!strcmp(mountlist->el[lino].mountpoint, "/1")) {
    2037                     asprintf(&command, "umount %s/", MNT_RESTORING);
     2038                    mr_asprintf(&command, "umount %s/", MNT_RESTORING);
    20382039                    log_msg(3,
    20392040                            "Well, I know a certain kitty-kitty who'll be sleeping with Mommy tonight...");
    20402041                } else {
    2041                     asprintf(&command, "umount " MNT_RESTORING "%s",
     2042                    mr_asprintf(&command, "umount " MNT_RESTORING "%s",
    20422043                            mountlist->el[lino].mountpoint);
    20432044                }
     
    20452046            log_msg(10, "The 'umount' command is '%s'", command);
    20462047            res = run_program_and_log_output(command, 3);
    2047             paranoid_free(command);
     2048            mr_free(command);
    20482049        } else {
    2049             asprintf(&tmp1, "%s%s", tmp, _("...not mounted anyway :-) OK"));
    2050             paranoid_free(tmp);
     2050            mr_asprintf(&tmp1, "%s%s", tmp, _("...not mounted anyway :-) OK"));
     2051            mr_free(tmp);
    20512052            tmp = tmp1;
    20522053            res = 0;
     
    20542055        g_current_progress++;
    20552056        if (res) {
    2056             asprintf(&tmp1, "%s%s", tmp, _("...Failed"));
    2057             paranoid_free(tmp);
     2057            mr_asprintf(&tmp1, "%s%s", tmp, _("...Failed"));
     2058            mr_free(tmp);
    20582059            tmp = tmp1;
    20592060            retval++;
     
    20622063            log_msg(2, tmp);
    20632064        }
    2064         paranoid_free(tmp);
     2065        mr_free(tmp);
    20652066    }
    20662067    close_progress_form();
     
    20972098
    20982099    // tar -zxvf-
    2099     asprintf(&command,
     2100    mr_asprintf(&command,
    21002101            "dd if=%s bs=%ld count=%ld 2> /dev/null | tar -zx %s %s %s %s %s",
    21012102            dev,
     
    21062107    log_msg(2, "command = '%s'", command);
    21072108    res = run_program_and_log_output(command, -1);
    2108     paranoid_free(command);
     2109    mr_free(command);
    21092110
    21102111    if (res != 0 && does_file_exist(MONDO_CFG_FILE_STUB)) {
     
    21422143    log_msg(2, "gcffa --- starting");
    21432144    log_to_screen(_("I'm thinking..."));
    2144     asprintf(&mountpt, "%s/mount.bootdisk", bkpinfo->tmpdir);
     2145    mr_asprintf(&mountpt, "%s/mount.bootdisk", bkpinfo->tmpdir);
    21452146    chdir(bkpinfo->tmpdir);
    21462147    // MONDO_CFG_FILE_STUB is missing the '/' at the start, FYI, by intent
     
    21502151    unlink(BIGGIELIST_TXT_STUB);
    21512152    unlink("tmp/i-want-my-lvm");
    2152     asprintf(&command, "mkdir -p %s", mountpt);
     2153    mr_asprintf(&command, "mkdir -p %s", mountpt);
    21532154    run_program_and_log_output(command, FALSE);
    2154     paranoid_free(command);
    2155 
    2156     asprintf(&cfg_file, "%s/%s", bkpinfo->tmpdir, MONDO_CFG_FILE_STUB);
    2157     asprintf(&mountlist_file, "%s/%s", bkpinfo->tmpdir,
     2155    mr_free(command);
     2156
     2157    mr_asprintf(&cfg_file, "%s/%s", bkpinfo->tmpdir, MONDO_CFG_FILE_STUB);
     2158    mr_asprintf(&mountlist_file, "%s/%s", bkpinfo->tmpdir,
    21582159            MOUNTLIST_FNAME_STUB);
    21592160    log_msg(2, "mountpt = %s; cfg_file=%s", mountpt, cfg_file);
    21602161
    21612162    /* Floppy? */
    2162     asprintf(&tmp, "mkdir -p %s", mountpt);
     2163    mr_asprintf(&tmp, "mkdir -p %s", mountpt);
    21632164    run_program_and_log_output(tmp, FALSE);
    2164     paranoid_free(tmp);
    2165 
    2166     asprintf(&tmp, "mkdir -p %s/tmp", bkpinfo->tmpdir);
     2165    mr_free(tmp);
     2166
     2167    mr_asprintf(&tmp, "mkdir -p %s/tmp", bkpinfo->tmpdir);
    21672168    run_program_and_log_output(tmp, FALSE);
    2168     paranoid_free(tmp);
    2169 
    2170     asprintf(&command, "mount /dev/fd0u1722 %s", mountpt);
    2171     asprintf(&tmp,
     2169    mr_free(tmp);
     2170
     2171    mr_asprintf(&command, "mount /dev/fd0u1722 %s", mountpt);
     2172    mr_asprintf(&tmp,
    21722173            "(sleep 15; kill `ps | grep \"%s\" | cut -d' ' -f1` 2> /dev/null) &",
    21732174            command);
    21742175    log_msg(1, "tmp = '%s'", tmp);
    21752176    system(tmp);
    2176     paranoid_free(tmp);
     2177    mr_free(tmp);
    21772178
    21782179    res = run_program_and_log_output(command, FALSE);
    2179     paranoid_free(command);
     2180    mr_free(command);
    21802181
    21812182    if (res) {
    2182         asprintf(&command, "mount /dev/fd0H1440 %s", mountpt);
     2183        mr_asprintf(&command, "mount /dev/fd0H1440 %s", mountpt);
    21832184        res = run_program_and_log_output(command, FALSE);
    2184         paranoid_free(command);
     2185        mr_free(command);
    21852186    }
    21862187    if (res) {
     
    21922193// NB: If busybox does not support 'mount -o loop' then Plan A WILL NOT WORK.
    21932194        log_msg(2, "Processing floppy (plan A?)");
    2194         asprintf(&ramdisk_fname, "%s/mindi.rdz", mountpt);
     2195        mr_asprintf(&ramdisk_fname, "%s/mindi.rdz", mountpt);
    21952196        if (!does_file_exist(ramdisk_fname)) {
    2196             paranoid_free(ramdisk_fname);
    2197             asprintf(&ramdisk_fname, "%s/initrd.img", mountpt);
     2197            mr_free(ramdisk_fname);
     2198            mr_asprintf(&ramdisk_fname, "%s/initrd.img", mountpt);
    21982199        }
    21992200        if (!does_file_exist(ramdisk_fname)) {
     
    22062207                    "Warning - failed to extract config file from ramdisk. I think this boot disk is mangled.");
    22072208        }
    2208         asprintf(&command, "umount %s", mountpt);
     2209        mr_asprintf(&command, "umount %s", mountpt);
    22092210        run_program_and_log_output(command, 5);
    2210         paranoid_free(command);
     2211        mr_free(command);
    22112212
    22122213        unlink(ramdisk_fname);
    2213         paranoid_free(ramdisk_fname);
     2214        mr_free(ramdisk_fname);
    22142215    }
    22152216    if (!does_file_exist(cfg_file)) {
     
    22372238
    22382239            if (bkpinfo->media_device == NULL) {
    2239                 asprintf(&bkpinfo->media_device, "/dev/st0");
     2240                mr_asprintf(&bkpinfo->media_device, "/dev/st0");
    22402241                log_msg(2, "media_device is blank; assuming %s",
    22412242                        bkpinfo->media_device);
    22422243            }
    2243             asprintf(&sav, bkpinfo->media_device);
     2244            mr_asprintf(&sav, bkpinfo->media_device);
    22442245            if (extract_cfg_file_and_mountlist_from_tape_dev
    22452246                (bkpinfo->media_device)) {
    2246                 paranoid_alloc(bkpinfo->media_device, "/dev/st0");
     2247                mr_allocstr(bkpinfo->media_device, "/dev/st0");
    22472248                if (extract_cfg_file_and_mountlist_from_tape_dev
    22482249                    (bkpinfo->media_device)) {
    2249                     paranoid_alloc(bkpinfo->media_device, "/dev/osst0");
     2250                    mr_allocstr(bkpinfo->media_device, "/dev/osst0");
    22502251                    if (extract_cfg_file_and_mountlist_from_tape_dev
    22512252                        (bkpinfo->media_device)) {
    2252                         paranoid_alloc(bkpinfo->media_device, "/dev/ht0");
     2253                        mr_allocstr(bkpinfo->media_device, "/dev/ht0");
    22532254                        if (extract_cfg_file_and_mountlist_from_tape_dev
    22542255                            (bkpinfo->media_device)) {
    22552256                            log_msg(3,
    22562257                                    "I tried lots of devices but none worked.");
    2257                             paranoid_alloc(bkpinfo->media_device, sav);
     2258                            mr_allocstr(bkpinfo->media_device, sav);
    22582259                        }
    22592260                    }
    22602261                }
    22612262            }
    2262             paranoid_free(sav);
     2263            mr_free(sav);
    22632264
    22642265            if (!does_file_exist("tmp/mondo-restore.cfg")) {
     
    22712272                    "gcffa --- looking at mounted CD for mindi-boot.2880.img");
    22722273            /* BERLIOS : Useless ?
    2273             asprintf(&command,
     2274            mr_asprintf(&command,
    22742275                    "mount " MNT_CDROM
    22752276                    "/images/mindi-boot.2880.img -o loop %s", mountpt);
    22762277                    */
    2277             asprintf(&mounted_cfgf_path, "%s/%s", mountpt, cfg_file);
     2278            mr_asprintf(&mounted_cfgf_path, "%s/%s", mountpt, cfg_file);
    22782279            if (!does_file_exist(mounted_cfgf_path)) {
    22792280                log_msg(2,
    22802281                        "gcffa --- Plan C, a.k.a. untarring some file from all.tar.gz");
    2281                 asprintf(&command, "tar -zxvf " MNT_CDROM "/images/all.tar.gz %s %s %s %s %s", MOUNTLIST_FNAME_STUB, MONDO_CFG_FILE_STUB, BIGGIELIST_TXT_STUB, FILELIST_FULL_STUB, "tmp/i-want-my-lvm");    // add -b TAPE_BLOCK_SIZE if you _really_ think it's necessary
     2282                mr_asprintf(&command, "tar -zxvf " MNT_CDROM "/images/all.tar.gz %s %s %s %s %s", MOUNTLIST_FNAME_STUB, MONDO_CFG_FILE_STUB, BIGGIELIST_TXT_STUB, FILELIST_FULL_STUB, "tmp/i-want-my-lvm"); // add -b TAPE_BLOCK_SIZE if you _really_ think it's necessary
    22822283                run_program_and_log_output(command, TRUE);
    2283                 paranoid_free(command);
     2284                mr_free(command);
    22842285
    22852286                if (!does_file_exist(MONDO_CFG_FILE_STUB)) {
     
    22882289                }
    22892290            }
    2290             paranoid_free(mounted_cfgf_path);
    2291         }
    2292     }
    2293     paranoid_free(mountpt);
     2291            mr_free(mounted_cfgf_path);
     2292        }
     2293    }
     2294    mr_free(mountpt);
    22942295
    22952296    if (does_file_exist(MONDO_CFG_FILE_STUB)) {
    22962297        log_msg(1, "gcffa --- great! We've got the config file");
    22972298        tmp1 = call_program_and_get_last_line_of_output("pwd");
    2298         asprintf(&tmp, "%s/%s", tmp1,MONDO_CFG_FILE_STUB);
    2299         asprintf(&command, "cp -f %s %s", tmp, cfg_file);
     2299        mr_asprintf(&tmp, "%s/%s", tmp1,MONDO_CFG_FILE_STUB);
     2300        mr_asprintf(&command, "cp -f %s %s", tmp, cfg_file);
    23002301        iamhere(command);
    23012302
     
    23082309            log_msg(1, "... and I moved it successfully to %s", cfg_file);
    23092310        }
    2310         paranoid_free(command);
    2311 
    2312         asprintf(&command, "cp -f %s/%s %s",tmp1,
     2311        mr_free(command);
     2312
     2313        mr_asprintf(&command, "cp -f %s/%s %s",tmp1,
    23132314                MOUNTLIST_FNAME_STUB, mountlist_file);
    2314         paranoid_free(tmp1);
     2315        mr_free(tmp1);
    23152316
    23162317        iamhere(command);
     
    23202321        } else {
    23212322            log_msg(1, "Got mountlist too");
    2322             paranoid_free(command);
    2323             asprintf(&command, "cp -f %s %s", mountlist_file,
     2323            mr_free(command);
     2324            mr_asprintf(&command, "cp -f %s %s", mountlist_file,
    23242325                    g_mountlist_fname);
    23252326            if (run_program_and_log_output(command, 1)) {
     
    23272328            } else {
    23282329                log_msg(1, "Copied mountlist to /tmp as well OK");
    2329                 paranoid_free(command);
    2330                 asprintf(&command, "cp -f tmp/i-want-my-lvm /tmp/");
     2330                mr_free(command);
     2331                mr_asprintf(&command, "cp -f tmp/i-want-my-lvm /tmp/");
    23312332                run_program_and_log_output(command, 1);
    23322333            }
    23332334        }
    2334         paranoid_free(command);
    2335         paranoid_free(tmp);
     2335        mr_free(command);
     2336        mr_free(tmp);
    23362337    }
    23372338    run_program_and_log_output("umount " MNT_CDROM, FALSE);
     
    23512352/* start SAH */
    23522353    else {
    2353         asprintf(&command, "cp -f %s %s/%s", MOUNTLIST_FNAME_STUB,
     2354        mr_asprintf(&command, "cp -f %s %s/%s", MOUNTLIST_FNAME_STUB,
    23542355                bkpinfo->tmpdir, MOUNTLIST_FNAME_STUB);
    23552356        run_program_and_log_output(command, FALSE);
    2356         paranoid_free(command);
     2357        mr_free(command);
    23572358    }
    23582359/* end SAH */
    23592360
    2360     asprintf(&command, "cp -f %s /%s", cfg_file, MONDO_CFG_FILE_STUB);
    2361     paranoid_free(cfg_file);
     2361    mr_asprintf(&command, "cp -f %s /%s", cfg_file, MONDO_CFG_FILE_STUB);
     2362    mr_free(cfg_file);
    23622363
    23632364    run_program_and_log_output(command, FALSE);
    2364     paranoid_free(command);
    2365 
    2366     asprintf(&command, "cp -f %s /%s", mountlist_file, MOUNTLIST_FNAME_STUB);
    2367     paranoid_free(mountlist_file);
     2365    mr_free(command);
     2366
     2367    mr_asprintf(&command, "cp -f %s /%s", mountlist_file, MOUNTLIST_FNAME_STUB);
     2368    mr_free(mountlist_file);
    23682369
    23692370    run_program_and_log_output(command, FALSE);
    2370     paranoid_free(command);
    2371 
    2372     asprintf(&command, "cp -f etc/raidtab /etc/");
     2371    mr_free(command);
     2372
     2373    mr_asprintf(&command, "cp -f etc/raidtab /etc/");
    23732374    run_program_and_log_output(command, FALSE);
    2374     paranoid_free(command);
    2375 
    2376     asprintf(&command, "cp -f tmp/i-want-my-lvm /tmp/");
     2375    mr_free(command);
     2376
     2377    mr_asprintf(&command, "cp -f tmp/i-want-my-lvm /tmp/");
    23772378    run_program_and_log_output(command, FALSE);
    2378     paranoid_free(command);
     2379    mr_free(command);
    23792380
    23802381    g_backup_media_type = bkpinfo->backup_media_type;
     
    24122413                log_msg(1, "Sync'ing %s (i=%d)",
    24132414                        raidlist->el[i].raid_device, i);
    2414                 asprintf(&screen_message, "Sync'ing %s",
     2415                mr_asprintf(&screen_message, "Sync'ing %s",
    24152416                        raidlist->el[i].raid_device);
    24162417                open_evalcall_form(screen_message);
    2417                 paranoid_free(screen_message);
     2418                mr_free(screen_message);
    24182419
    24192420                if (raidlist->el[i].progress == -1) { // delayed while another partition inits
     
    24342435        }
    24352436    }
    2436     paranoid_free(raidlist);
    2437 }
     2437    mr_free(raidlist);
     2438}
Note: See TracChangeset for help on using the changeset viewer.