diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-05-29 17:13:51 +0000 | 
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2018-06-06 16:16:12 +0000 | 
| commit | 5d806ec6e0bce5f1cd32b0d5386c1ad97c31c1f8 (patch) | |
| tree | c025730971c6c8eb3351b439659a8a36b0e0369d /lib/frrstr.c | |
| parent | 62bece44494e5b7aefb5102bd1109e1e1376c3b3 (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.c | 5 | 
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;  		}  | 
