]> git.cworth.org Git - mnemon/blobdiff - mnemon.c
Fix memory leaks after calling readline.
[mnemon] / mnemon.c
index 4c5acd26287ce381e13a25efa86c81eb800536da..dfcc60e78fe3a931c60f0d8b9d1a8d82ca798e0d 100644 (file)
--- a/mnemon.c
+++ b/mnemon.c
@@ -1151,7 +1151,8 @@ mnemon_do_challenges (mnemon_t *mnemon)
 
        while (1) {
            if (category->time_limit > 0.0) {
-               readline ("The next one is timed. Press enter when ready:");
+               response = readline ("The next one is timed. Press enter when ready:");
+               free (response);
            }
                
            printf ("%s\n", item->challenge);
@@ -1166,10 +1167,12 @@ mnemon_do_challenges (mnemon_t *mnemon)
                return;
            }
 
-           if (response[0] == '/')
+           if (response[0] == '/') {
                mnemon_handle_command (mnemon, response + 1);
-           else
+               free (response);
+           } else {
                break;
+           }
        }
 
        mnemon_handle_response (mnemon, bin, item_index,
@@ -1177,6 +1180,7 @@ mnemon_do_challenges (mnemon_t *mnemon)
                                (end.tv_sec + end.tv_usec / 1e6) -
                                (start.tv_sec + start.tv_usec / 1e6),
                                category->time_limit);
+       free (response);
     } while (mnemon->to_introduce ||
             mnemon->unlearned ||
             mnemon->to_master > 0);