chiark / gitweb /
prefork-interp: require -U (for future-proofing)
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Mon, 15 Aug 2022 15:50:10 +0000 (16:50 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 21 Aug 2022 20:21:10 +0000 (21:21 +0100)
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
cprogs/prefork-interp.c

index 6ee253fbd09ca96fad8e6489a76b6e865c9e9880..dfc8aca2e452ad1598f65402928465ebc479a806 100644 (file)
@@ -95,8 +95,11 @@ void fusagemessage(FILE *f) {
   fprintf(f, "usage: #!/usr/bin/prefork-interp [<options>]\n");
 }
 
+static int laundering;
+
 const struct cmdinfo cmdinfos[]= {
   PREFORK_CMDINFOS
+  { 0, 'U',   0,                    .iassignto= &laundering,    .arg= 'U' },
   { 0 }
 };
 
@@ -381,6 +384,11 @@ static FILE *connect_or_spawn(void) {
 }
 
 static void make_executor_argv(const char *const *argv) {
+  switch (laundering) {
+  case 'U': break;
+  default: die("need -U (specifying unlaundered argument handling)");
+  }
+
   const char *arg;
   #define EACH_NEW_ARG(EACH) {                 \
     arg = interp; { EACH }                     \