dev-lang/mmix: Compilation fix for format-security, bug #533694
authorMatthias Maier <tamiko@gentoo.org>
Sun, 20 Sep 2015 01:44:38 +0000 (20:44 -0500)
committerMatthias Maier <tamiko@gentoo.org>
Sun, 20 Sep 2015 01:45:26 +0000 (20:45 -0500)
Gentoo-Bug: 533694

Package-Manager: portage-2.2.20.1

dev-lang/mmix/files/mmix-20131017-format-security.patch [new file with mode: 0644]
dev-lang/mmix/mmix-20131017.ebuild

diff --git a/dev-lang/mmix/files/mmix-20131017-format-security.patch b/dev-lang/mmix/files/mmix-20131017-format-security.patch
new file mode 100644 (file)
index 0000000..3824765
--- /dev/null
@@ -0,0 +1,59 @@
+diff --git a/mmix-pipe.w b/mmix-pipe.w
+index b7f4536..a1a9a48 100644
+--- a/mmix-pipe.w
++++ b/mmix-pipe.w
+@@ -1883,7 +1883,7 @@ static void print_specnode_id(a)
+   octa a;
+ {
+   if (a.h==sign_bit) {
+-    if (a.l<32) printf(special_name[a.l]);
++    if (a.l<32) fputs(special_name[a.l], stdout);
+     else if (a.l<256) printf("g[%d]",a.l);
+     else printf("l[%d]",a.l-256);
+   }@+else if (a.h!=(tetra)-1) {
+diff --git a/mmix-sim.w b/mmix-sim.w
+index cb6995c..176f60c 100644
+--- a/mmix-sim.w
++++ b/mmix-sim.w
+@@ -2832,7 +2832,7 @@ void trace_print(o)
+  case hex: fputc('#',stdout);@+print_hex(o);@+return;
+  case zhex: printf("%08x%08x",o.h,o.l);@+return;
+  case floating: print_float(o);@+return;
+- case handle:@+if (o.h==0 && o.l<3) printf(stream_name[o.l]);
++ case handle:@+if (o.h==0 && o.l<3) fputs(stream_name[o.l], stdout);
+     else print_int(o);@+return;
+   }
+ }
+@@ -2843,9 +2843,9 @@ case ')': fputc(right_paren[round_mode],stdout);@+break;
+ case 't':@+if (x.l) printf(" Yes, -> #"),print_hex(inst_ptr);
+    else printf(" No");@+break;
+ case 'g':@+if (!good) printf(" (bad guess)");@+break;
+-case 's': printf(special_name[zz]);@+break;
++case 's': fputs(special_name[zz], stdout);@+break;
+ case '?': p++;@+if (z.l) printf("%c%d",*p,z.l);@+break;
+-case 'l': printf(lhs);@+break;
++case 'l': fputs(lhs, stdout);@+break;
+ case 'r': p=switchable_string;@+break;
+ @ @d rhs &switchable_string[1]
+@@ -2984,9 +2984,9 @@ void scan_option(arg,usage)
+     fprintf(stderr,
+         "Usage: %s <options> progfile command line-args...\n",myself);
+ @.Usage: ...@>
+-    for (k=0;usage_help[k][0];k++) fprintf(stderr,usage_help[k]);
++    for (k=0;usage_help[k][0];k++) fputs(usage_help[k], stderr);
+     exit(-1);
+-  }@+else@+ for (k=0;usage_help[k][1]!='b';k++) printf(usage_help[k]);
++  }@+else@+ for (k=0;usage_help[k][1]!='b';k++) fputs(usage_help[k], stdout);
+   return;
+   }
+ }
+@@ -3090,7 +3090,7 @@ void catchint(n)
+     printf("Eh? Sorry, I don't understand `%s'. (Type h for help)\n",
+          command_buf);
+     goto interact;
+-  case 'h':@+ for (k=0;interactive_help[k][0];k++) printf(interactive_help[k]);
++  case 'h':@+ for (k=0;interactive_help[k][0];k++) fputs(interactive_help[k], stdout);
+     goto interact;
+   }
+  check_syntax:@+ if (*p!='\n') {
index d9c9c76310e0902c5b12473dadf024029d7cad44..b233a6793fd7cfae34f65423dd0c180e82ff9f55 100644 (file)
@@ -25,6 +25,7 @@ S="${WORKDIR}"
 
 src_prepare() {
        epatch "${FILESDIR}"/${PN}-20110420-makefile.patch
+       epatch "${FILESDIR}"/${PN}-20131017-format-security.patch
 }
 
 src_compile() {