summaryrefslogtreecommitdiff
path: root/lib/frrstr.c
diff options
context:
space:
mode:
authorQuentin Young <qlyoung@cumulusnetworks.com>2018-05-29 17:13:51 +0000
committerQuentin Young <qlyoung@cumulusnetworks.com>2018-06-06 16:16:12 +0000
commit5d806ec6e0bce5f1cd32b0d5386c1ad97c31c1f8 (patch)
treec025730971c6c8eb3351b439659a8a36b0e0369d /lib/frrstr.c
parent62bece44494e5b7aefb5102bd1109e1e1376c3b3 (diff)
lib: fix static analysis issues, use regfree()
* Fix potential NULL dereference * Fix use of uninitialized value * Fix leaking memory by not freeing regex_t * Fix extra \n when using empty regex filter * Clean up still-reachable hook memory * Handle nonexistent pager Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
Diffstat (limited to 'lib/frrstr.c')
-rw-r--r--lib/frrstr.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/frrstr.c b/lib/frrstr.c
index 03368b3665..d003590ba6 100644
--- a/lib/frrstr.c
+++ b/lib/frrstr.c
@@ -58,6 +58,9 @@ vector frrstr_split_vec(const char *string, const char *delimiter)
char **result;
int argc;
+ if (!string)
+ return NULL;
+
frrstr_split(string, delimiter, &result, &argc);
vector v = array_to_vector((void **)result, argc);
@@ -89,7 +92,7 @@ char *frrstr_join(const char **parts, int argc, const char *join)
memcpy(p, parts[i], arglen);
p += arglen;
- if (i + 1 != argc) {
+ if (i + 1 != argc && join) {
memcpy(p, join, joinlen);
p += joinlen;
}