There's exactly one global variable in signify, but it could be local.
We do write to this variable, but not to move data between functions.
Index: zsig.c
===================================================================
RCS file: /cvs/src/usr.bin/signify/zsig.c,v
retrieving revision 1.15
diff -u -p -r1.15 zsig.c
--- zsig.c 11 Jul 2017 23:52:05 -0000 1.15
+++ zsig.c 23 Feb 2019 22:47:59 -0000
@@ -49,9 +49,6 @@ struct gzheader {
#define GZHEADERLENGTH 10
#define MYBUFSIZE 65536LU
-
-static uint8_t fake[10] = { 0x1f, 0x8b, 8, FCOMMENT_FLAG, 0, 0, 0, 0, 0, 3 };
-
static uint8_t *
readgz_header(struct gzheader *h, int fd)
{
@@ -184,6 +181,7 @@ zverify(const char *pubkeyfile, const ch
char *p, *meta;
uint8_t *bufend;
int fdin, fdout;
+ uint8_t fake[10] = { 0x1f, 0x8b, 8, FCOMMENT_FLAG, 0, 0, 0, 0, 0, 3 };
/* by default, verification will love pipes */
if (!sigfile)
@@ -244,6 +242,7 @@ zsign(const char *seckeyfile, const char
uint8_t *sighdr;
char date[80];
time_t clock;
+ uint8_t fake[10] = { 0x1f, 0x8b, 8, FCOMMENT_FLAG, 0, 0, 0, 0, 0, 3 };
fdin = xopen(msgfile, O_RDONLY, 0);
if (fstat(fdin, &sb) == -1 || !S_ISREG(sb.st_mode))