Browse Source

fix printf %n specifier - missing breaks had it clobbering memory

Rich Felker 14 years ago
parent
commit
5cbd76c6b0
1 changed files with 7 additions and 7 deletions
  1. 7 7
      src/stdio/vfprintf.c

+ 7 - 7
src/stdio/vfprintf.c

@@ -526,13 +526,13 @@ static int printf_core(FILE *f, const char *fmt, va_list *ap, union arg *nl_arg,
 		switch(t) {
 		case 'n':
 			switch(ps) {
-			case BARE: *(int *)arg.p = l;
-			case LPRE: *(long *)arg.p = l;
-			case LLPRE: *(long long *)arg.p = l;
-			case HPRE: *(unsigned short *)arg.p = l;
-			case HHPRE: *(unsigned char *)arg.p = l;
-			case ZTPRE: *(size_t *)arg.p = l;
-			case JPRE: *(uintmax_t *)arg.p = l;
+			case BARE: *(int *)arg.p = l; break;
+			case LPRE: *(long *)arg.p = l; break;
+			case LLPRE: *(long long *)arg.p = l; break;
+			case HPRE: *(unsigned short *)arg.p = l; break;
+			case HHPRE: *(unsigned char *)arg.p = l; break;
+			case ZTPRE: *(size_t *)arg.p = l; break;
+			case JPRE: *(uintmax_t *)arg.p = l; break;
 			}
 			continue;
 		case 'p':