fixed leak in VDEF_PERCENT handlin -- Perry Stoll <perry_stoll@yahoo.com>
[rrdtool.git] / src / rrd_cgi.c
index e79ecb7..9c81c15 100644 (file)
@@ -1,5 +1,5 @@
 /*****************************************************************************
- * RRDtool 1.0.33  Copyright Tobias Oetiker, 1997 - 2000
+ * RRDtool 1.1.x  Copyright Tobias Oetiker, 1997 - 2002
  *****************************************************************************
  * rrd_cgi.c  RRD Web Page Generator
  *****************************************************************************/
@@ -211,8 +211,13 @@ char* rrdsetenv(long argc, char **args){
 char* rrdgetenv(long argc, char **args){
   if (argc != 1) {
     return stralloc("[ERROR: getenv faild because it did not get 1 argument only]");
-  };
-  return stralloc(getenv(args[0]));
+  }
+  else if (getenv(args[0]) == NULL) {
+    return stralloc("");
+  }
+  else {
+    return stralloc(getenv(args[0]));
+  }
 }
 
 char* rrdgoodfor(long argc, char **args){
@@ -248,6 +253,7 @@ char* includefile(long argc, char **args){
   }
 }
 
+static
 char* rrdstrip(char *buf){
   char *start;
   if (buf == NULL) return NULL;
@@ -437,6 +443,7 @@ char* printtimenow(long argc, char **args) {
 }
 
 /* scan aLine until an unescaped '>' arives */
+static
 char* scanargs(char *aLine, long *argc, char ***args)
 {
   char        *getP, *putP;
@@ -454,7 +461,7 @@ char* scanargs(char *aLine, long *argc, char ***args)
   getP = aLine;
   putP = aLine;
   while (*getP && !( !Quote  && (braket == 0) && ((*getP) == '>'))){
-    if (*getP < ' ') *getP = ' '; /*remove all special chars*/
+    if ((unsigned)*getP < ' ') *getP = ' '; /*remove all special chars*/
     switch (*getP) {
     case ' ': 
       if (Quote){