Blob Blame History Raw
diff -up xfig.3.2.5/w_rulers.c~ xfig.3.2.5/w_rulers.c
--- xfig.3.2.5/w_rulers.c~	2007-12-12 20:28:30.000000000 +0100
+++ xfig.3.2.5/w_rulers.c	2007-12-12 20:28:30.000000000 +0100
@@ -1166,7 +1166,7 @@ void reset_topruler(void)
     register int    i,k;
     register tick_info* tk;
     register Pixmap p = topruler_pm;
-    char	    number[6];
+    char	    number[16];
     int		    X0,len;
     int		    tickmod, tickskip;
 
@@ -1183,7 +1183,7 @@ void reset_topruler(void)
 	tickmod = 1;
 
     /* see how big a label is to adjust spacing, if necessary */
-    sprintf(number, "%d%s", (X0+(int)((TOPRULER_WD/zoomscale)))/tickmod, cur_fig_units);
+    snprintf(number, sizeof(number), "%d%s", (X0+(int)((TOPRULER_WD/zoomscale)))/tickmod, cur_fig_units);
     len = XTextWidth(roman_font, number, strlen(number));
     while (skipx < (len + 5)/zoomscale) {
 	skip *= 2;
@@ -1197,11 +1197,11 @@ void reset_topruler(void)
       /* string */
       if (i % skipx == 0) {
         if ((i/10) % tickmod == 0)
-          sprintf(number, "%d%s", i/tickmod, cur_fig_units);
+          snprintf(number, sizeof(number), "%d%s", i/tickmod, cur_fig_units);
 	else if (i % tickmod == 0)
-          sprintf(number, "%d", i/tickmod);
+          snprintf(number, sizeof(number), "%d", i/tickmod);
         else
-          sprintf(number, precstr, (float)(1.0 * i / tickmod));
+          snprintf(number, sizeof(number), precstr, (float)(1.0 * i / tickmod));
 	/* get length of string to position it */
 	len = XTextWidth(roman_font, number, strlen(number));
         /* we center on the number only, letting the minus sign hang out */
@@ -1425,7 +1425,7 @@ void reset_sideruler(void)
     register int    i,k;
     register tick_info* tk;
     register Pixmap p = sideruler_pm;
-    char	    number[6],len;
+    char	    number[16],len;
     int		    Y0;
     int		    tickmod, tickskip;
 
@@ -1456,11 +1456,11 @@ void reset_sideruler(void)
       /* string */
       if (i % skipx == 0) {
         if ((i/10) % tickmod == 0)
-          sprintf(number, "%d%s", i/tickmod, cur_fig_units);
+          snprintf(number, sizeof(number), "%d%s", i/tickmod, cur_fig_units);
 	else if (i % tickmod == 0)
-          sprintf(number, "%d", i/tickmod);
+          snprintf(number, sizeof(number), "%d", i/tickmod);
         else
-          sprintf(number, precstr, (float)(1.0 * i / tickmod));
+          snprintf(number, sizeof(number), precstr, (float)(1.0 * i / tickmod));
 	/* get length of string to position it */
 	len = XTextWidth(roman_font, number, strlen(number));
 	/* vertically centered on inch/cm mark */