$OpenBSD: patch-src_rrd_graph_helper_c,v 1.1 2007/09/12 14:34:36 msf Exp $
--- src/rrd_graph_helper.c.orig	Wed May  2 19:06:10 2007
+++ src/rrd_graph_helper.c	Fri Jul  6 04:22:19 2007
@@ -296,7 +296,7 @@ rrd_parse_print(const char *const line, unsigned int *
 int
 rrd_parse_shift(const char *const line, unsigned int *const eaten, graph_desc_t *const gdp, image_desc_t *const im) {
     int i;
-
+    long time_tmp = 0;
     if ((gdp->vidx=rrd_parse_find_vname(line,eaten,gdp,im))<0) return 1;
 
     switch (im->gdes[gdp->vidx].gf) {
@@ -327,7 +327,8 @@ rrd_parse_shift(const char *const line, unsigned int *
 	}
     } else {
 	rrd_clear_error();
-	i=0; sscanf(&line[*eaten],"%li%n",&gdp->shval,&i);
+	i=0; sscanf(&line[*eaten],"%li%n",&time_tmp,&i);
+	gdp->shval = time_tmp;
 	if (i!=(int)strlen(&line[*eaten])) {
 	    rrd_set_error("Not a valid offset: %s in line %s",&line[*eaten],line);
 	    return 1;
@@ -377,6 +378,7 @@ rrd_parse_PVHLAST(const char *const line, unsigned int
     int i,j,k;
     int colorfound=0;
     char tmpstr[MAX_VNAME_LEN + 10];	/* vname#RRGGBBAA\0 */
+    long time_tmp = 0;
     static int spacecnt = 0;
 
     if (spacecnt == 0) {        
@@ -443,7 +445,8 @@ rrd_parse_PVHLAST(const char *const line, unsigned int
 	dprintf("- it is not an existing vname\n");
 	switch (gdp->gf) {
 	    case GF_VRULE:
-		k=0;sscanf(tmpstr,"%li%n",&gdp->xrule,&k);
+		k=0;sscanf(tmpstr,"%li%n",&time_tmp,&k);
+		gdp->xrule = time_tmp;
 		if (((j!=0)&&(k==j))||((j==0)&&(k==i))) {
 		    dprintf("- found time: %li\n",gdp->xrule);
 		} else {
@@ -454,9 +457,9 @@ rrd_parse_PVHLAST(const char *const line, unsigned int
 	    default:
 		k=0;sscanf(tmpstr,"%lf%n",&gdp->yrule,&k);
 		if (((j!=0)&&(k==j))||((j==0)&&(k==i))) {
-		    dprintf("- found number: %f\n",gdp->yrule);
+		    dprintf("- found number: %lf\n",gdp->yrule);
 		} else {
-		    dprintf("- is is not a valid number: %li\n",gdp->xrule);
+		    dprintf("- is is not a valid number: %lf\n",gdp->yrule);
 		    rrd_set_error("parameter '%s' does not represent a number in line %s\n",tmpstr,line);
 		    return 1;
 		}
