From: oetiker Date: Wed, 30 Jun 2010 12:48:47 +0000 (+0000) Subject: src/rrd_client.c: Fix a potential segmentation fault in "get_path". X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=b47c2e44707f965100a561660a45f89b5759cbc1;p=rrdtool.git src/rrd_client.c: Fix a potential segmentation fault in "get_path". The "get_path" function is called at least from "rrdc_update" without checking for a connection first. In that case the "sd_path" pointer may be NULL, so dereferencing it without checking for NULL is not good behavior. This patch checks all arguments of the "get_path" function and returns an error if any pointer is NULL. -- Florian Forster git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@2094 a5681a0c-68f1-0310-ab6d-d61299d08faa --- diff --git a/src/rrd_client.c b/src/rrd_client.c index d292281..0d21283 100644 --- a/src/rrd_client.c +++ b/src/rrd_client.c @@ -73,6 +73,9 @@ static const char *get_path (const char *path, char *resolved_path) /* {{{ */ const char *ret = path; int is_unix = 0; + if ((path == NULL) || (resolved_path == NULL) || (sd_path == NULL)) + return (NULL); + if ((*sd_path == '/') || (strncmp ("unix:", sd_path, strlen ("unix:")) == 0)) is_unix = 1;