diff options
author | dormando <dormando@rydia.net> | 2022-11-24 18:27:15 -0800 |
---|---|---|
committer | dormando <dormando@rydia.net> | 2022-11-24 18:27:15 -0800 |
commit | b10511e5bf694e9ec0bc60e82edf8f67d74891f2 (patch) | |
tree | ba2690b1f90f233227f9f11510dbd66137984d63 /logger.c | |
parent | fbb9e0a0c894e96a8b5e4f6f421c299c324a6178 (diff) | |
download | memcached-b10511e5bf694e9ec0bc60e82edf8f67d74891f2.tar.gz |
proxy: fix mcp.log_req crash on nil res
If for some reason a res object is not passed into mcp.log_req or
mcp.log_reqsample it would still strlen() the backend name/port's, which
could crash.
Diffstat (limited to 'logger.c')
-rw-r--r-- | logger.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -326,8 +326,13 @@ static void _logger_log_proxy_req(logentry *e, const entry_details *d, const voi le->status = status; le->dlen = dlen; le->elapsed = elapsed; - le->be_namelen = strlen(be_name); - le->be_portlen = strlen(be_port); + if (be_name && be_port) { + le->be_namelen = strlen(be_name); + le->be_portlen = strlen(be_port); + } else { + le->be_namelen = 0; + le->be_portlen = 0; + } char *data = le->data; if (req[reqlen-2] == '\r') { reqlen -= 2; |