fix printf %n specifier - missing breaks had it clobbering memory
authorRich Felker <dalias@aerifal.cx>
Wed, 16 Feb 2011 23:19:46 +0000 (18:19 -0500)
committerRich Felker <dalias@aerifal.cx>
Wed, 16 Feb 2011 23:19:46 +0000 (18:19 -0500)
src/stdio/vfprintf.c

index 5e19acc595b46d428275b8bd99f2e2900e928caa..3512b4de7a1e49c88ce6ca9c7b0a92640b1b9c55 100644 (file)
@@ -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':