On Sat, May 04, 2024 at 04:59:21PM -0600, Todd C. Miller wrote:
> CVSROOT:      /cvs
> Module name:  src
> Changes by:   mill...@cvs.openbsd.org 2024/05/04 16:59:21
> 
> Modified files:
>       usr.bin/awk    : FIXES b.c lib.c main.c run.c tran.c 
> 
> Log message:
> Update awk to the May 4, 2024 version.
> Fixes a use-after-free bug with ARGV for "delete ARGV".

ld: error: undefined symbol: ARGVtab

misses part of your upstream commit
https://github.com/onetrueawk/awk/commit/d11b2d1a36e92518cea81c717169e2c97e8450d9

Index: lib.c
===================================================================
RCS file: /cvs/src/usr.bin/awk/lib.c,v
diff -u -p -r1.56 lib.c
--- lib.c       4 May 2024 22:59:21 -0000       1.56
+++ lib.c       5 May 2024 02:24:14 -0000
@@ -332,14 +332,16 @@ int readcsvrec(char **pbuf, int *pbufsiz
 
 char *getargv(int n)   /* get ARGV[n] */
 {
+       Array *ap;
        Cell *x;
        char *s, temp[50];
-       extern Array *ARGVtab;
+       extern Cell *ARGVcell;
 
+       ap = (Array *)ARGVcell->sval;
        snprintf(temp, sizeof(temp), "%d", n);
-       if (lookup(temp, ARGVtab) == NULL)
+       if (lookup(temp, ap) == NULL)
                return NULL;
-       x = setsymtab(temp, "", 0.0, STR, ARGVtab);
+       x = setsymtab(temp, "", 0.0, STR, ap);
        s = getsval(x);
        DPRINTF("getargv(%d) returns |%s|\n", n, s);
        return s;

Reply via email to