From a03ae55558155370d34c4ffdaf15993d166f1255 Mon Sep 17 00:00:00 2001
From: Rahul Chaudhry <rahulchaudhry@google.com>
Date: Thu, 16 Mar 2017 11:11:21 -0700
Subject: [PATCH 01/14] gas: add option to enable/disable incbin via
 --allow-incbin.

This change is forward-port of google cl/80426738 and cl/80451836
to binutils-2.35.1 branch with c/273909 squashed into it.

[Adrian Ratiu: rebased from v2.27 to v2.36.1]

Change-Id: I5dcfc2f3141cbe3db5de31a819ed49ab8ad8968c
---
 gas/as.c                            | 17 ++++++++++++++++-
 gas/as.h                            |  3 +++
 gas/doc/as.texi                     |  2 ++
 gas/read.c                          |  6 ++++++
 gas/testsuite/gas/aarch64/mapmisc.d |  2 +-
 gas/testsuite/gas/all/incbin.d      |  2 +-
 6 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/gas/as.c b/gas/as.c
index caa1c300ae7..f117730b5f8 100644
--- a/gas/as.c
+++ b/gas/as.c
@@ -111,6 +111,9 @@ int flag_use_elf_stt_common = DEFAULT_GENERATE_ELF_STT_COMMON;
 bfd_boolean flag_generate_build_notes = DEFAULT_GENERATE_BUILD_NOTES;
 #endif
 
+/* Enable incbin directive. */
+int allow_incbin_directive = 1;
+
 /* Keep the output file.  */
 static int keep_it = 0;
 
@@ -503,7 +506,9 @@ parse_args (int * pargc, char *** pargv)
       OPTION_WARN_FATAL,
       OPTION_COMPRESS_DEBUG,
       OPTION_NOCOMPRESS_DEBUG,
-      OPTION_NO_PAD_SECTIONS /* = STD_BASE + 40 */
+      OPTION_NO_PAD_SECTIONS, /* = STD_BASE + 40 */
+      OPTION_ALLOW_INCBIN,
+      OPTION_NOALLOW_INCBIN
     /* When you add options here, check that they do
        not collide with OPTION_MD_BASE.  See as.h.  */
     };
@@ -523,6 +528,8 @@ parse_args (int * pargc, char *** pargv)
     ,{"al", optional_argument, NULL, OPTION_AL}
     ,{"compress-debug-sections", optional_argument, NULL, OPTION_COMPRESS_DEBUG}
     ,{"nocompress-debug-sections", no_argument, NULL, OPTION_NOCOMPRESS_DEBUG}
+    ,{"allow-incbin", optional_argument, NULL, OPTION_ALLOW_INCBIN}
+    ,{"noallow-incbin", optional_argument, NULL, OPTION_NOALLOW_INCBIN}
     ,{"debug-prefix-map", required_argument, NULL, OPTION_DEBUG_PREFIX_MAP}
     ,{"defsym", required_argument, NULL, OPTION_DEFSYM}
     ,{"dump-config", no_argument, NULL, OPTION_DUMPCONFIG}
@@ -750,6 +757,14 @@ This program has absolutely no warranty.\n"));
 	  flag_compress_debug = COMPRESS_DEBUG_NONE;
 	  break;
 
+	case OPTION_ALLOW_INCBIN:
+	  allow_incbin_directive = 1;
+	  break;
+
+	case OPTION_NOALLOW_INCBIN:
+	  allow_incbin_directive = 0;
+	  break;
+
 	case OPTION_DEBUG_PREFIX_MAP:
 	  add_debug_prefix_map (optarg);
 	  break;
diff --git a/gas/as.h b/gas/as.h
index d6ac208289d..301666db955 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -421,6 +421,9 @@ extern int max_macro_nest;
 /* Verbosity level.  */
 extern int verbose;
 
+/* Enable incbin directive. */
+extern int allow_incbin_directive;
+
 /* Obstack chunk size.  Keep large for efficient space use, make small to
    increase malloc calls for monitoring memory allocation.  */
 extern int chunksize;
diff --git a/gas/doc/as.texi b/gas/doc/as.texi
index cf3597f8983..73eb99527f1 100644
--- a/gas/doc/as.texi
+++ b/gas/doc/as.texi
@@ -5619,6 +5619,8 @@ following section of code if the two strings are not the same.
 
 @cindex @code{incbin} directive
 @cindex binary files, including
+The @code{incbin} directive can be used with @option{--allow-incbin}.
+
 The @code{incbin} directive includes @var{file} verbatim at the current
 location. You can control the search paths used with the @samp{-I} command-line
 option (@pxref{Invoking,,Command-Line Options}).  Quotation marks are required
diff --git a/gas/read.c b/gas/read.c
index be6e3e03d45..a74d3a94144 100644
--- a/gas/read.c
+++ b/gas/read.c
@@ -5843,6 +5843,12 @@ s_incbin (int x ATTRIBUTE_UNUSED)
   long   bytes;
   int    len;
 
+  if (! allow_incbin_directive)
+    {
+      as_fatal (_("\'.incbin\' directive not allowed, use --allow-incbin flag"
+                  " to enable."));
+    }
+
 #ifdef md_flush_pending_output
   md_flush_pending_output ();
 #endif
diff --git a/gas/testsuite/gas/aarch64/mapmisc.d b/gas/testsuite/gas/aarch64/mapmisc.d
index 1f2df6ea0d7..e0744f97bf7 100644
--- a/gas/testsuite/gas/aarch64/mapmisc.d
+++ b/gas/testsuite/gas/aarch64/mapmisc.d
@@ -1,4 +1,4 @@
-#as: -EL -I$srcdir/$subdir --generate-missing-build-notes=no
+#as: -EL -I$srcdir/$subdir --generate-missing-build-notes=no --allow-incbin
 #objdump: --syms --special-syms -d
 #name: AArch64 Mapping Symbols for miscellaneous directives
 #source: mapmisc.s
diff --git a/gas/testsuite/gas/all/incbin.d b/gas/testsuite/gas/all/incbin.d
index 62f6ae78103..e3b61630ada 100644
--- a/gas/testsuite/gas/all/incbin.d
+++ b/gas/testsuite/gas/all/incbin.d
@@ -1,4 +1,4 @@
-#as: -I$srcdir/$subdir
+#as: -I$srcdir/$subdir --allow-incbin
 #objdump: -s -j .text
 #name: incbin
 
-- 
2.32.0

