SECURITY: Refuse negative and large store allocations
[exim.git] / src / scripts / reversion
index 2d63ad746011dd06d1cd44bb928b3116fe7ddb32..cec1db2fbde8d7ffa1dd14d3a17f523abc7925b6 100755 (executable)
@@ -29,7 +29,11 @@ fi
 # Read version information that was generated by a previous run of
 # this script, or during the release process.
 
-if   [ -f ./version.sh ]; then
+# Override, used for automated testing w/o access to the
+# .git directory (w.g. inside a git worktree)
+if   [ -n "$EXIM_RELEASE_VERSION" ]; then
+    :
+elif   [ -f ./version.sh ]; then
     .    ./version.sh
 elif [ -f ../src/version.sh ]; then
     .    ../src/version.sh
@@ -51,9 +55,12 @@ elif [ -d ../../.git ] || [ -f ../../.git ] || [ "$1" = release ]; then
             EXIM_VARIANT_VERSION="$3"
             rm -f version.h
     fi
-else
+fi
+
+if [ -z "$EXIM_RELEASE_VERSION" ]; then
     echo "Cannot determine the release number" >&2
-    exit
+    echo "You may want to override it with EXIM_RELEASE_VERSION" >&2
+    exit 1
 fi
 
 # If you are maintaining a patched version of Exim, you can either
@@ -99,6 +106,7 @@ fi
 
 ( echo '# automatically generated file - see ../scripts/reversion'
   echo EXIM_RELEASE_VERSION='"'"$EXIM_RELEASE_VERSION"'"'
+  test -n "$EXIM_VARIANT_VERSION" && \
   echo EXIM_VARIANT_VERSION='"'"$EXIM_VARIANT_VERSION"'"'
   echo EXIM_COMPILE_NUMBER='"'"$EXIM_COMPILE_NUMBER"'"'
   if [ ".${exim_build_date_override:-}" != "." ]; then
@@ -110,13 +118,17 @@ if [ ! -f version.h ]
 then
 ( echo '/* automatically generated file - see ../scripts/reversion */'
   echo '#define EXIM_RELEASE_VERSION "'"$EXIM_RELEASE_VERSION"'"'
+  test -n "$EXIM_VARIANT_VERSION" && \
   echo '#define EXIM_VARIANT_VERSION "'"$EXIM_VARIANT_VERSION"'"'
-  echo '#define EXIM_VERSION_STR EXIM_RELEASE_VERSION EXIM_VARIANT_VERSION'
+  echo '#ifdef EXIM_VARIANT_VERSION'
+  echo '#define EXIM_VERSION_STR EXIM_RELEASE_VERSION "-" EXIM_VARIANT_VERSION'
+  echo '#else'
+  echo '#define EXIM_VERSION_STR EXIM_RELEASE_VERSION'
+  echo '#endif'
   if [ ".${exim_build_date_override:-}" != "." ]; then
     echo '#define EXIM_BUILD_DATE_OVERRIDE "'"${exim_build_date_override}"'"'
   fi
 ) >version.h
 fi
 
-echo ">>> version $EXIM_RELEASE_VERSION $EXIM_VARIANT_VERSION #$EXIM_COMPILE_NUMBER"
-echo
+#test -t 1 && echo ">>> version $EXIM_RELEASE_VERSION $EXIM_VARIANT_VERSION #$EXIM_COMPILE_NUMBER"