Mercurial > hg > release > heapstats-1.1
changeset 67:2518d4eee904
Bug 3223: Cannot set empty value to signal setting
Reviewed-by: yasuenag
https://github.com/HeapStats/heapstats/pull/47
author | KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp> |
---|---|
date | Fri, 10 Mar 2017 01:14:55 +0900 |
parents | bbf1ae6d2a2e |
children | 33bc182ce53a |
files | agent/ChangeLog agent/src/util.cpp |
diffstat | 2 files changed, 26 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/agent/ChangeLog Mon Feb 27 19:25:26 2017 +0900 +++ b/agent/ChangeLog Fri Mar 10 01:14:55 2017 +0900 @@ -1,3 +1,11 @@ +2017-03-10 KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp> + + * Bug 3223: Cannot set empty value to signal setting + +2017-02-27 Yasumasa Suenaga <yasuenag@gmail.com> + + * Bug 3331: Refactoring for memory management in HeapStats Agent + 2017-02-09 Yasumasa Suenaga <yasuenag@gmail.com> * Bug 3322: TClassContainer instance might be broken in multithreaded access
--- a/agent/src/util.cpp Mon Feb 27 19:25:26 2017 +0900 +++ b/agent/src/util.cpp Fri Mar 10 01:14:55 2017 +0900 @@ -499,11 +499,8 @@ /* Get matched value string. */ if (unlikely(pcre_get_substring(lineBuff, matchArr, matchCnt, 2, &value) <= 0)) { - - /* This config maybe designated default value. e.g. "aaa=" */ - pcre_free_substring(key); - pcre_free_substring(value); - continue; + /* This maybe set default value or disable. e.g. "aaa=" */ + value = (char *)calloc(1, sizeof(char)); } /* Check key name. */ @@ -573,20 +570,30 @@ || strcmp(key, "signal_reload") == 0) { /* If signal is supported by JVM. */ - if (isSupportSignal(value)) { + if (isSupportSignal(value) || value == NULL || value[0] == '\0') { /* Copy string exclude "SIG". */ if (strcmp(key, "logsignal_normal") == 0) { free(arg.logSignalNormal); - arg.logSignalNormal = strdup(value + 3); - + if (value == NULL || value[0] == '\0') { + arg.logSignalNormal = strdup(""); + } else { + arg.logSignalNormal = strdup(value + 3); + } } else if (strcmp(key, "logsignal_all") == 0) { free(arg.logSignalAll); - arg.logSignalAll = strdup(value + 3); - + if (value == NULL || value[0] == '\0') { + arg.logSignalAll = strdup(""); + } else { + arg.logSignalAll = strdup(value + 3); + } } else { free(arg.reloadSignal); - arg.reloadSignal = strdup(value + 3); + if (value == NULL || value[0] == '\0') { + arg.reloadSignal = strdup(""); + } else { + arg.reloadSignal = strdup(value + 3); + } } } else { PRINT_WARN_MSG_HEADER