]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
Bash-5.2 patch 10: slightly relax check for binary script files
authorChet Ramey <chet.ramey@case.edu>
Wed, 23 Nov 2022 22:15:54 +0000 (17:15 -0500)
committerChet Ramey <chet.ramey@case.edu>
Wed, 23 Nov 2022 22:15:54 +0000 (17:15 -0500)
general.c
patchlevel.h

index 2bc9f382af5aa4b2b010144c42fb876a32970e0d..bda39f413d9a42888e06662e6f83dbe8973fb256 100644 (file)
--- a/general.c
+++ b/general.c
@@ -683,21 +683,20 @@ check_binary_file (sample, sample_len)
      int sample_len;
 {
   register int i;
+  int nline;
   unsigned char c;
 
   if (sample_len >= 4 && sample[0] == 0x7f && sample[1] == 'E' && sample[2] == 'L' && sample[3] == 'F')
     return 1;
 
   /* Generally we check the first line for NULs. If the first line looks like
-     a `#!' interpreter specifier, we just look for NULs anywhere in the
-     buffer. */
-  if (sample[0] == '#' && sample[1] == '!')
-    return (memchr (sample, '\0', sample_len) != NULL);
+     a `#!' interpreter specifier, we look for NULs in the first two lines. */
+  nline = (sample[0] == '#' && sample[1] == '!') ? 2 : 1;
 
   for (i = 0; i < sample_len; i++)
     {
       c = sample[i];
-      if (c == '\n')
+      if (c == '\n' && --nline == 0)
        return (0);
       if (c == '\0')
        return (1);
index e59027ac847976cb0ec180d14a55f7d5a2e9b40c..9ddc79f7e6ec0c6f5e62c6e9cd87084266c3de35 100644 (file)
@@ -25,6 +25,6 @@
    regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 9
+#define PATCHLEVEL 10
 
 #endif /* _PATCHLEVEL_H_ */