]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix error handling in do_alist_prompt
authorKern Sibbald <kern@sibbald.com>
Sun, 11 May 2014 10:32:44 +0000 (12:32 +0200)
committerKern Sibbald <kern@sibbald.com>
Sun, 11 May 2014 10:32:44 +0000 (12:32 +0200)
bacula/src/dird/ua_select.c

index 5f8bc332f559c6a55ee7bcd3db082c40ea892c19..66b27205b0335acf1cfe000f620eefc07e90e6af 100644 (file)
@@ -951,6 +951,7 @@ int do_alist_prompt(UAContext *ua, const char *automsg, const char *msg,
    sprintf(pmsg, "%s (1-%d): ", msg, ua->num_prompts-1);
 
    for ( ;; ) {
+      bool ok = true;
       /* Either a . or an @ will get you out of the loop */
       if (ua->api) user->signal(BNET_SELECT_INPUT);
 
@@ -967,13 +968,16 @@ int do_alist_prompt(UAContext *ua, const char *automsg, const char *msg,
          while ( (item = sl.next()) > 0) {
             if (item < 1 || item >= ua->num_prompts) {
                ua->warning_msg(_("Please enter a number between 1 and %d\n"), ua->num_prompts-1);
-               continue;
+               ok = false;
+               break;
             }
             selected->append(bstrdup(ua->prompt[item]));
          }
       }
-      item = selected->size();
-      break;
+      if (ok) {
+         item = selected->size();
+         break;
+      }
    }
 
 done: