it is sufficient to set the last item to 0
[rrdtool.git] / src / rrd_graph.c
index a16734b..4abacc7 100644 (file)
@@ -1446,6 +1446,19 @@ leg_place(image_desc_t *im)
        } else {
            prt_fctn = '\0';
        }
+       /* only valid control codes */
+        if (prt_fctn != 'l' && 
+           prt_fctn != 'r' &&
+           prt_fctn != 'j' &&
+           prt_fctn != 'c' &&
+            prt_fctn != 't' &&
+            prt_fctn != '\0' &&
+            prt_fctn != 'g' ) {
+              free(legspace);
+              rrd_set_error("Unknown control code at the end of '%s\\%c'",im->gdes[i].legend,prt_fctn);
+                      return -1;
+
+       }
         /* remove exess space */
         while (prt_fctn=='g' && 
               leg_cc > 0 && 
@@ -3506,7 +3519,7 @@ rrd_graph_options(int argc, char *argv[],image_desc_t *im)
 
         case 'W':
             strncpy(im->watermark,optarg,100);
-            im->watermark[99]='\0';
+            im->watermark[100]='\0';
             break;
 
        case '?':