svn commit: samba r17908 - in branches/SAMBA_3_0_23/source/lib: .

jra at samba.org jra at samba.org
Tue Aug 29 14:43:34 GMT 2006


Author: jra
Date: 2006-08-29 14:43:34 +0000 (Tue, 29 Aug 2006)
New Revision: 17908

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=17908

Log:
Ensure we get all the sprintf fixes in our production
branch !
Jeremy.

Modified:
   branches/SAMBA_3_0_23/source/lib/snprintf.c


Changeset:
Modified: branches/SAMBA_3_0_23/source/lib/snprintf.c
===================================================================
--- branches/SAMBA_3_0_23/source/lib/snprintf.c	2006-08-29 09:51:49 UTC (rev 17907)
+++ branches/SAMBA_3_0_23/source/lib/snprintf.c	2006-08-29 14:43:34 UTC (rev 17908)
@@ -247,7 +247,7 @@
 static void fmtstr(char *buffer, size_t *currlen, size_t maxlen,
 		    char *value, int flags, int min, int max);
 static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
-		    long value, int base, int min, int max, int flags);
+		    LLONG value, int base, int min, int max, int flags);
 static void fmtfp(char *buffer, size_t *currlen, size_t maxlen,
 		   LDOUBLE fvalue, int min, int max, int flags);
 static void dopr_outch(char *buffer, size_t *currlen, size_t maxlen, char c);
@@ -589,11 +589,11 @@
 			if (cnk->cflags == DP_C_SHORT)
 				cnk->value = va_arg (args, unsigned int);
 			else if (cnk->cflags == DP_C_LONG)
-				cnk->value = (long)va_arg (args, unsigned long int);
+				cnk->value = (unsigned long int)va_arg (args, unsigned long int);
 			else if (cnk->cflags == DP_C_LLONG)
 				cnk->value = (LLONG)va_arg (args, unsigned LLONG);
 			else
-				cnk->value = (long)va_arg (args, unsigned int);
+				cnk->value = (unsigned int)va_arg (args, unsigned int);
 
 			for (i = 1; i < clist[pnum].num; i++) {
 				clist[pnum].chunks[i]->value = cnk->value;
@@ -799,10 +799,10 @@
 /* Have to handle DP_F_NUM (ie 0x and 0 alternates) */
 
 static void fmtint(char *buffer, size_t *currlen, size_t maxlen,
-		    long value, int base, int min, int max, int flags)
+		    LLONG value, int base, int min, int max, int flags)
 {
 	int signvalue = 0;
-	unsigned long uvalue;
+	unsigned LLONG uvalue;
 	char convert[20];
 	int place = 0;
 	int spadlen = 0; /* amount to space pad */
@@ -920,7 +920,7 @@
 static double my_modf(double x0, double *iptr)
 {
 	int i;
-	long l;
+	LLONG l;
 	double x = x0;
 	double f = 1.0;
 
@@ -1114,7 +1114,7 @@
 static struct pr_chunk *new_chunk(void) {
 	struct pr_chunk *new_c = (struct pr_chunk *)malloc(sizeof(struct pr_chunk));
 
-	if ( !new_c ) 
+	if (!new_c)
 		return NULL;
 
 	new_c->type = 0;
@@ -1301,7 +1301,7 @@
 		"%d",
 		NULL
 	};
-	long int_nums[] = { -1, 134, 91340, 341, 0203, 0, 1234567890};
+	long int_nums[] = { -1, 134, 91340, 341, 0203, 1234567890, 0};
 	char *str_fmt[] = {
 		"%10.5s",
 		"%-10.5s",
@@ -1318,6 +1318,13 @@
 		NULL
 	};
 	char *str_vals[] = {"hello", "a", "", "a longer string", NULL};
+#ifdef HAVE_LONG_LONG
+	char *ll_fmt[] = {
+		"%llu",
+		NULL
+	};
+	LLONG ll_nums[] = { 134, 91340, 341, 0203, 1234567890, 128006186140000000LL, 0};
+#endif
 	int x, y;
 	int fail = 0;
 	int num = 0;
@@ -1329,9 +1336,9 @@
 		for (y = 0; fp_nums[y] != 0 ; y++) {
 			buf1[0] = buf2[0] = '\0';
 			l1 = snprintf(NULL, 0, fp_fmt[x], fp_nums[y]);
-			l2 = snprintf(buf1, sizeof(buf1), fp_fmt[x], fp_nums[y]);
+			l2 = sprintf(buf1, fp_fmt[x], fp_nums[y]);
 			sprintf (buf2, fp_fmt[x], fp_nums[y]);
-			buf1[1023] = buf1[1023] = '\0';
+			buf1[1023] = buf2[1023] = '\0';
 			if (strcmp (buf1, buf2) || (l1 != l2)) {
 				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", 
 				       fp_fmt[x], l1, buf1, l2, buf2);
@@ -1345,9 +1352,9 @@
 		for (y = 0; int_nums[y] != 0 ; y++) {
 			buf1[0] = buf2[0] = '\0';
 			l1 = snprintf(NULL, 0, int_fmt[x], int_nums[y]);
-			l2 = snprintf(buf1, sizeof(buf1), int_fmt[x], int_nums[y]);
+			l2 = sprintf(buf1, int_fmt[x], int_nums[y]);
 			sprintf (buf2, int_fmt[x], int_nums[y]);
-			buf1[1023] = buf1[1023] = '\0';
+			buf1[1023] = buf2[1023] = '\0';
 			if (strcmp (buf1, buf2) || (l1 != l2)) {
 				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", 
 				       int_fmt[x], l1, buf1, l2, buf2);
@@ -1361,9 +1368,9 @@
 		for (y = 0; str_vals[y] != 0 ; y++) {
 			buf1[0] = buf2[0] = '\0';
 			l1 = snprintf(NULL, 0, str_fmt[x], str_vals[y]);
-			l2 = snprintf(buf1, sizeof(buf1), str_fmt[x], str_vals[y]);
+			l2 = sprintf(buf1, str_fmt[x], str_vals[y]);
 			sprintf (buf2, str_fmt[x], str_vals[y]);
-			buf1[1023] = buf1[1023] = '\0';
+			buf1[1023] = buf2[1023] = '\0';
 			if (strcmp (buf1, buf2) || (l1 != l2)) {
 				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", 
 				       str_fmt[x], l1, buf1, l2, buf2);
@@ -1373,6 +1380,24 @@
 		}
 	}
 
+#ifdef HAVE_LONG_LONG
+	for (x = 0; ll_fmt[x] ; x++) {
+		for (y = 0; ll_nums[y] != 0 ; y++) {
+			buf1[0] = buf2[0] = '\0';
+			l1 = snprintf(NULL, 0, ll_fmt[x], ll_nums[y]);
+			l2 = sprintf(buf1, ll_fmt[x], ll_nums[y]);
+			sprintf (buf2, ll_fmt[x], ll_nums[y]);
+			buf1[1023] = buf2[1023] = '\0';
+			if (strcmp (buf1, buf2) || (l1 != l2)) {
+				printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n", 
+				       ll_fmt[x], l1, buf1, l2, buf2);
+				fail++;
+			}
+			num++;
+		}
+	}
+#endif
+
 #define BUFSZ 2048
 
 	buf1[0] = buf2[0] = '\0';
@@ -1392,7 +1417,7 @@
 	buf1[0] = buf2[0] = '\0';
 	l1 = snprintf(buf1, sizeof(buf1), "%4$*1$d %2$s %3$*1$.*1$f", 3, "pos test", 12.3456, 9);
 	l2 = sprintf(buf2, "%4$*1$d %2$s %3$*1$.*1$f", 3, "pos test", 12.3456, 9);
-	buf1[1023] = buf1[1023] = '\0';
+	buf1[1023] = buf2[1023] = '\0';
 	if (strcmp(buf1, buf2) || (l1 != l2)) {
 		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",
 				"%4$*1$d %2$s %3$*1$.*1$f", l1, buf1, l2, buf2);
@@ -1402,7 +1427,7 @@
 	buf1[0] = buf2[0] = '\0';
 	l1 = snprintf(buf1, sizeof(buf1), "%4$*4$d %2$s %3$*4$.*4$f", 3, "pos test", 12.3456, 9);
 	l2 = sprintf(buf2, "%4$*4$d %2$s %3$*4$.*4$f", 3, "pos test", 12.3456, 9);
-	buf1[1023] = buf1[1023] = '\0';
+	buf1[1023] = buf2[1023] = '\0';
 	if (strcmp(buf1, buf2)) {
 		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",
 				"%4$*1$d %2$s %3$*1$.*1$f", l1, buf1, l2, buf2);
@@ -1412,7 +1437,7 @@
 	buf1[0] = buf2[0] = '\0';
 	l1 = snprintf(buf1, sizeof(buf1), "%lld", (LLONG)1234567890);
 	l2 = sprintf(buf2, "%lld", (LLONG)1234567890);
-	buf1[1023] = buf1[1023] = '\0';
+	buf1[1023] = buf2[1023] = '\0';
 	if (strcmp(buf1, buf2)) {
 		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",
 				"%lld", l1, buf1, l2, buf2);
@@ -1422,7 +1447,7 @@
 	buf1[0] = buf2[0] = '\0';
 	l1 = snprintf(buf1, sizeof(buf1), "%Lf", (LDOUBLE)890.1234567890123);
 	l2 = sprintf(buf2, "%Lf", (LDOUBLE)890.1234567890123);
-	buf1[1023] = buf1[1023] = '\0';
+	buf1[1023] = buf2[1023] = '\0';
 	if (strcmp(buf1, buf2)) {
 		printf("snprintf doesn't match Format: %s\n\tsnprintf(%d) = [%s]\n\t sprintf(%d) = [%s]\n",
 				"%Lf", l1, buf1, l2, buf2);



More information about the samba-cvs mailing list