Ignore:
Timestamp:
Mar 12, 2024, 3:10:24 AM (3 months ago)
Author:
Bruno Cornec
Message:

More compiler fixes

  • Fix unused vars
  • Fix FreeBSD #if alone
  • Use MDSTAT_FILE everywhere
  • Fix missing break
  • Fix some strncpy. mr_strncpy used when safe
  • Fix wrong g_isoform_header_str proto !
  • find-cd & find-dvd => find-optical
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/3.3/mondo/src/mondorestore/mondo-rstr-newt.c

    r3879 r3892  
    615615 * @ingroup restoreGuiMountlist
    616616 */
    617 void
    618 choose_raid_level(struct OSSWAP (raid_device_record, vinum_plex) * raidrec)
    619 {
     617void choose_raid_level(struct OSSWAP (raid_device_record, vinum_plex) * raidrec) {
    620618
    621619#ifdef __FreeBSD__
    622620
    623621    /** int ***************************************************************/
    624     int res = 0;
    625622    int out = 0;
    626623
    627624    /** buffers ***********************************************************/
    628     char tmp[MAX_STR_LEN];
     625    char *tmp = NULL;
     626    char *tmp1 = NULL;
    629627    char *prompt = NULL;
    630     char sz[MAX_STR_LEN];
     628    char *sz = NULL;
    631629
    632630    mr_asprintf(prompt, "Please enter the RAID level you want. (concat, striped, raid5)");
    633631    if (raidrec->raidlevel == -1) {
    634         strcpy(tmp, "concat");
     632        mr_asprintf(tmp, "%s", "concat");
    635633    } else if (raidrec->raidlevel == 0) {
    636         strcpy(tmp, "striped");
     634        mr_asprintf(tmp, "%s", "striped");
    637635    } else {
    638         sprintf(tmp, "raid%i", raidrec->raidlevel);
     636        mr_asprintf(tmp, "raid%i", raidrec->raidlevel);
    639637    }
    640638    for (out = 999; out == 999;) {
    641         res = popup_and_get_string("Specify RAID level", prompt, tmp, 10);
    642         if (!res) {
     639        tmp1 = mr_popup_and_get_string("Specify RAID level", prompt, tmp);
     640        if (tmp1 == NULL) {
    643641            mr_free(prompt);
     642            mr_free(tmp);
    644643            return;
    645644        }
    646         strip_spaces(tmp);
     645        mr_free(tmp);
     646        tmp = mr_strip_spaces(tmp1);
     647        log_it(tmp);
     648
    647649        if (tmp[0] == '[' && tmp[strlen(tmp) - 1] == ']') {
    648             strcpy(sz, tmp);
    649             strncpy(tmp, sz + 1, strlen(sz) - 2);
     650            sz = tmp;
     651            // safe as shorter
     652            mr_strncpy(tmp, sz + 1, strlen(sz) - 2);
    650653            tmp[strlen(sz) - 2] = '\0';
    651654        }
     
    657660            out = 5;
    658661        }
    659         log_it(tmp);
     662        mr_free(tmp);
     663
    660664        if (is_this_raid_personality_registered(out)) {
    661665            log_it("Groovy. You've picked a RAID personality which is registered.");
     
    664668            {
    665669                out = 999;
     670                if (raidrec->raid_level == -1) {
     671                    mr_asprintf(tmp, "%s", "linear");
     672                } else {
     673                    mr_asprintf(tmp, "%d", raidrec->raid_level);
     674                }
    666675            }
    667676        }
    668677    }
    669678    mr_free(prompt);
     679    mr_free(tmp);
    670680
    671681    raidrec->raidlevel = out;
    672682#else
    673683    /** buffers ***********************************************************/
    674     char tmp[MAX_STR_LEN];
     684    char *tmp = NULL;
     685    char *tmp1 = NULL;
    675686    char *personalities = NULL;
    676687    char *prompt = NULL;
    677     char sz[MAX_STR_LEN];
     688    char *sz;
    678689    int out = 0;
    679     int res = 0;
    680690
    681691
    682692    assert(raidrec != NULL);
    683     paranoid_system("grep Pers /proc/mdstat > /tmp/raid-personalities.txt 2> /dev/null");
     693    paranoid_system("grep Pers " MDSTAT_FILE " > /tmp/raid-personalities.txt 2> /dev/null");
    684694    mr_asprintf(personalities, "%s", last_line_of_file("/tmp/raid-personalities.txt"));
    685695    mr_asprintf(prompt, "Please enter the RAID level you want. %s", personalities);
     
    687697
    688698    if (raidrec->raid_level == -1) {
    689         strcpy(tmp, "linear");
     699        mr_asprintf(tmp, "%s", "linear");
    690700    } else {
    691         sprintf(tmp, "%d", raidrec->raid_level);
     701        mr_asprintf(tmp, "%d", raidrec->raid_level);
    692702    }
    693703    for (out = 999;
    694704         out != -1 && out != 0 && out != 1 && out != 4 && out != 5
    695705         && out != 10;) {
    696         res = popup_and_get_string("Specify RAID level", prompt, tmp, 10);
    697         if (!res) {
     706        tmp1 = mr_popup_and_get_string("Specify RAID level", prompt, tmp);
     707        if (tmp1 == NULL) {
     708            mr_free(tmp);
     709            mr_free(prompt);
    698710            return;
    699711        }
    700         strip_spaces(tmp);
     712        mr_free(tmp);
     713        tmp = mr_strip_spaces(tmp1);
     714        log_it(tmp);
     715
    701716        if (tmp[0] == '[' && tmp[strlen(tmp) - 1] == ']') {
    702             strcpy(sz, tmp);
    703             strncpy(tmp, sz + 1, strlen(sz) - 2);
     717            sz = tmp;
     718            // safe as shorter
     719            mr_strncpy(tmp, sz + 1, strlen(sz) - 2);
    704720            tmp[strlen(sz) - 2] = '\0';
    705721        }
     
    711727            out = atoi(tmp);
    712728        }
    713         log_it(tmp);
     729        mr_free(tmp);
     730
    714731        if (is_this_raid_personality_registered(out)) {
    715732            log_it("Groovy. You've picked a RAID personality which is registered.");
     
    717734            if (ask_me_yes_or_no("You have chosen a RAID personality which is not registered with the kernel. Make another selection?")) {
    718735                out = 999;
     736                mr_free(tmp);
     737                if (raidrec->raid_level == -1) {
     738                    mr_asprintf(tmp, "%s", "linear");
     739                } else {
     740                    mr_asprintf(tmp, "%d", raidrec->raid_level);
     741                }
    719742            }
    720743        }
    721744    }
    722745    mr_free(prompt);
     746    mr_free(tmp);
    723747
    724748    raidrec->raid_level = out;
     
    24832507
    24842508
    2485 #if __FreeBSD__
     2509#ifdef __FreeBSD__
    24862510/**
    24872511 * Add a subdisk to @p raidrec.
Note: See TracChangeset for help on using the changeset viewer.