-
Problem report
-
Resolution: Fixed
-
Minor
-
2.2.19rc1, 3.0.10rc1, 3.2.7rc1, 3.4.0alpha1
-
Sprint 10, Sprint 11
-
3
Steps to reproduce:
- Add such UserParemeter to agent's config file:
UserParameter=leak[*],echo "some long string, the longer it is, the faster memory leaks $1"
- Launch agent;
- Execute zabbix_get in an infinite loop passing a string with suppressed characters (search for UnsafeUserParameters here) as a parameter:
while true; do zabbix_get -s localhost -k leak[@]; done
- Watch memory leaking (e.g. using proc.mem[,,,zabbix_agent.*listener,rss] and/or proc.mem[,,,zabbix_agent.*listener,data])
Neither replace_param() nor process() frees memory allocated for a part of the command before the first faulty positional parameter.