diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/build-support/setup-hooks/make-binary-wrapper.sh | 8 | ||||
-rw-r--r-- | pkgs/test/make-binary-wrapper/add-flags.c | 2 | ||||
-rw-r--r-- | pkgs/test/make-binary-wrapper/combination.c | 3 | ||||
-rw-r--r-- | pkgs/test/make-binary-wrapper/prefix.c | 2 | ||||
-rw-r--r-- | pkgs/test/make-binary-wrapper/suffix.c | 2 |
5 files changed, 16 insertions, 1 deletions
diff --git a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh index bb9b5f453d196..d7b888292d581 100644 --- a/pkgs/build-support/setup-hooks/make-binary-wrapper.sh +++ b/pkgs/build-support/setup-hooks/make-binary-wrapper.sh @@ -64,7 +64,7 @@ makeDocumentedCWrapper() { # ARGS: same as makeBinaryWrapper makeCWrapper() { local argv0 n params cmd main flagsBefore flags executable params length - local uses_prefix uses_suffix uses_concat3 + local uses_prefix uses_suffix uses_concat3 uses_assert executable=$(escapeStringLiteral "$1") params=("$@") length=${#params[*]} @@ -94,6 +94,7 @@ makeCWrapper() { main="$main $cmd"$'\n' uses_prefix=1 uses_concat3=1 + uses_assert=1 n=$((n + 3)) [ $n -ge "$length" ] && main="$main #error makeCWrapper: $p takes 3 arguments"$'\n' ;; @@ -102,12 +103,14 @@ makeCWrapper() { main="$main $cmd"$'\n' uses_suffix=1 uses_concat3=1 + uses_assert=1 n=$((n + 3)) [ $n -ge "$length" ] && main="$main #error makeCWrapper: $p takes 3 arguments"$'\n' ;; --add-flags) flags="${params[n + 1]}" flagsBefore="$flagsBefore $flags" + uses_assert=1 n=$((n + 1)) [ $n -ge "$length" ] && main="$main #error makeCWrapper: $p takes 1 argument"$'\n' ;; @@ -129,6 +132,7 @@ makeCWrapper() { printf '%s\n' "#include <unistd.h>" printf '%s\n' "#include <stdlib.h>" [ -z "$uses_concat3" ] || printf '%s\n' "#include <string.h>" + [ -z "$uses_assert" ] || printf '%s\n' "#include <assert.h>" [ -z "$uses_concat3" ] || printf '\n%s\n' "$(concat3Fn)" [ -z "$uses_prefix" ] || printf '\n%s\n' "$(setEnvPrefixFn)" [ -z "$uses_suffix" ] || printf '\n%s\n' "$(setEnvSuffixFn)" @@ -146,6 +150,7 @@ addFlags() { result="$result ${var}[$((n+1))] = \"$flag\";"$'\n' done printf ' %s\n' "char **$var = malloc(sizeof(*$var) * ($((n+1)) + argc));" + printf ' %s\n' "assert($var != NULL);" printf ' %s\n' "${var}[0] = argv[0];" printf '%s' "$result" printf ' %s\n' "for (int i = 1; i < argc; ++i) {" @@ -222,6 +227,7 @@ char *concat3(char *x, char *y, char *z) { int yn = strlen(y); int zn = strlen(z); char *res = malloc(sizeof(*res)*(xn + yn + zn + 1)); + assert(res != NULL); strncpy(res, x, xn); strncpy(res + xn, y, yn); strncpy(res + xn + yn, z, zn); diff --git a/pkgs/test/make-binary-wrapper/add-flags.c b/pkgs/test/make-binary-wrapper/add-flags.c index 70d43e0bec081..fccd5aa9402a7 100644 --- a/pkgs/test/make-binary-wrapper/add-flags.c +++ b/pkgs/test/make-binary-wrapper/add-flags.c @@ -4,9 +4,11 @@ #include <unistd.h> #include <stdlib.h> +#include <assert.h> int main(int argc, char **argv) { char **argv_tmp = malloc(sizeof(*argv_tmp) * (5 + argc)); + assert(argv_tmp != NULL); argv_tmp[0] = argv[0]; argv_tmp[1] = "-x"; argv_tmp[2] = "-y"; diff --git a/pkgs/test/make-binary-wrapper/combination.c b/pkgs/test/make-binary-wrapper/combination.c index 925fdf1ccfb4a..5e4e1168f4a02 100644 --- a/pkgs/test/make-binary-wrapper/combination.c +++ b/pkgs/test/make-binary-wrapper/combination.c @@ -9,12 +9,14 @@ #include <unistd.h> #include <stdlib.h> #include <string.h> +#include <assert.h> char *concat3(char *x, char *y, char *z) { int xn = strlen(x); int yn = strlen(y); int zn = strlen(z); char *res = malloc(sizeof(*res)*(xn + yn + zn + 1)); + assert(res != NULL); strncpy(res, x, xn); strncpy(res + xn, y, yn); strncpy(res + xn + yn, z, zn); @@ -43,6 +45,7 @@ int main(int argc, char **argv) { putenv("MESSAGE2=WORLD"); char **argv_tmp = malloc(sizeof(*argv_tmp) * (4 + argc)); + assert(argv_tmp != NULL); argv_tmp[0] = argv[0]; argv_tmp[1] = "-x"; argv_tmp[2] = "-y"; diff --git a/pkgs/test/make-binary-wrapper/prefix.c b/pkgs/test/make-binary-wrapper/prefix.c index 914fd851bb7e7..fa333013cd02e 100644 --- a/pkgs/test/make-binary-wrapper/prefix.c +++ b/pkgs/test/make-binary-wrapper/prefix.c @@ -5,12 +5,14 @@ #include <unistd.h> #include <stdlib.h> #include <string.h> +#include <assert.h> char *concat3(char *x, char *y, char *z) { int xn = strlen(x); int yn = strlen(y); int zn = strlen(z); char *res = malloc(sizeof(*res)*(xn + yn + zn + 1)); + assert(res != NULL); strncpy(res, x, xn); strncpy(res + xn, y, yn); strncpy(res + xn + yn, z, zn); diff --git a/pkgs/test/make-binary-wrapper/suffix.c b/pkgs/test/make-binary-wrapper/suffix.c index 865d76fe34e2a..a299f1fa0bd66 100644 --- a/pkgs/test/make-binary-wrapper/suffix.c +++ b/pkgs/test/make-binary-wrapper/suffix.c @@ -5,12 +5,14 @@ #include <unistd.h> #include <stdlib.h> #include <string.h> +#include <assert.h> char *concat3(char *x, char *y, char *z) { int xn = strlen(x); int yn = strlen(y); int zn = strlen(z); char *res = malloc(sizeof(*res)*(xn + yn + zn + 1)); + assert(res != NULL); strncpy(res, x, xn); strncpy(res + xn, y, yn); strncpy(res + xn + yn, z, zn); |