]> git.itanic.dy.fi Git - rrdd/commitdiff
sanitize_rrd_update_data: Ensure minus sign is not forgotten
authorTimo Kokkonen <kaapeli@itanic.dy.fi>
Sat, 25 Jun 2011 11:25:20 +0000 (14:25 +0300)
committerTimo Kokkonen <kaapeli@itanic.dy.fi>
Sat, 25 Jun 2011 11:34:52 +0000 (14:34 +0300)
Fix a simple bug which caused the minus sign to be removed from the
sanitized output.

Signed-off-by: Timo Kokkonen <kaapeli@itanic.dy.fi>
rrdtool.c

index b296fee39e14be5d9dc117518980f0941f04cd11..e341f5a6cb23665da6bf92dfc949fc58c1914965 100644 (file)
--- a/rrdtool.c
+++ b/rrdtool.c
@@ -99,6 +99,7 @@ static int sanitize_rrd_update_data(char *data)
 {
        char clean_data[RRD_DATA_MAX_LEN];
        int entries = 0;
+       int minus;
        char *src, *end, *cln;
 
        data[RRD_DATA_MAX_LEN - 1] = 0;
@@ -106,8 +107,11 @@ static int sanitize_rrd_update_data(char *data)
        cln = clean_data;
 
        while (src < data + RRD_DATA_MAX_LEN && *src) {
-               if (*src == '-')
+               minus = 0;
+               if (*src == '-') {
                        src++;
+                       minus = 1;
+               }
 
                end = skip_numbers(src);
 
@@ -117,6 +121,10 @@ static int sanitize_rrd_update_data(char *data)
                }
 
                if (*end == ':' || !*end) {
+                       if (minus) {
+                               *cln = '-';
+                               cln++;
+                       }
                        for (; src <= end; src++, cln++)
                                *cln = *src;