diff options
author | Christian Grothoff <christian@grothoff.org> | 2023-05-02 21:48:23 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2023-05-02 21:48:23 +0200 |
commit | 8e0f9b40c0ffcf3367b9a0cf2e1f0bebda34e0cb (patch) | |
tree | e4b887f26ff98330cca42bb71dd5c7d7a3a96f07 /src | |
parent | 4267f1d76299252de273fa723c6037fef30fb7f1 (diff) | |
download | exchange-8e0f9b40c0ffcf3367b9a0cf2e1f0bebda34e0cb.tar.xz |
check regex syntax at least
Diffstat (limited to 'src')
-rw-r--r-- | src/exchange-tools/taler-exchange-offline.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/exchange-tools/taler-exchange-offline.c b/src/exchange-tools/taler-exchange-offline.c index fbf8a6ac6..80765dd9b 100644 --- a/src/exchange-tools/taler-exchange-offline.c +++ b/src/exchange-tools/taler-exchange-offline.c @@ -24,6 +24,8 @@ #include "taler_json_lib.h" #include "taler_exchange_service.h" #include "taler_extensions.h" +#include <regex.h> + /** * Name of the input for the 'sign' and 'show' operation. @@ -3017,6 +3019,21 @@ parse_restriction (char *const *args, "Mandatory arguments for restriction of type `regex' missing (REGEX, HINT, HINT-I18 required)\n"); return -1; } + { + regex_t ex; + + if (0 != regcomp (&ex, + args[1], + REG_NOSUB | REG_EXTENDED)) + { + GNUNET_log (GNUNET_ERROR_TYPE_ERROR, + "Invalid regular expression `%s'\n", + args[1]); + return -1; + } + regfree (&ex); + } + i18n = json_loads (args[3], JSON_REJECT_DUPLICATES, &err); |