diff options
Diffstat (limited to 'usr/src/common/util/getresponse.c')
| -rw-r--r-- | usr/src/common/util/getresponse.c | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/usr/src/common/util/getresponse.c b/usr/src/common/util/getresponse.c index 6bde237a14..db070816cb 100644 --- a/usr/src/common/util/getresponse.c +++ b/usr/src/common/util/getresponse.c @@ -40,13 +40,9 @@ #define DEFAULT_NOEXPR "^[nN]" #define FREE_MEM \ - if (yesstr) \ free(yesstr); \ - if (nostr) \ free(nostr); \ - if (yesexpr) \ free(yesexpr); \ - if (noexpr) \ free(noexpr) #define SET_DEFAULT_STRS \ @@ -112,9 +108,24 @@ init_yes(void) SET_DEFAULT_STRS; fallback = 1; } + if (fallback == 0) { + free(yesexpr); + free(noexpr); + } return (0); } +void +fini_yes(void) +{ + free(yesstr); + free(nostr); + yesstr = DEFAULT_YESSTR; + nostr = DEFAULT_NOSTR; + regfree(&preg_yes); + regfree(&preg_no); +} + static int yes_no(int (*func)(char *)) { |
