[PATCH] symtab: Fix memory corruption when tracing a popdef'd macro

Eric Blake <[email protected]> Fri, 13 Jan 2023 12:37:20 -0600
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
V2hpbGUgZGVidWdnaW5nIGEgc2NyaXB0IHdpdGggJ200IC1kYWVxdCcsIEkgd2FzIHN1cnByaXNl
ZCB0byBzZWUKdW5pbml0aWFsaXplZCBtZW1vcnkgaW4gdGhlIHRyYWNlIGZvciBvbmUgb2YgdGhl
IG1hY3JvIGludm9jYXRpb25zLgpSZXJ1bm5pbmcgaXQgdW5kZXIgdmFsZ3JpbmQgY29uZmlybWVk
IGEgdXNlLWFmdGVyLWZyZWUuCgoqIHNyYy9zeW10YWIuYyAoZnJlZV9zeW1ib2wpOiBXaGVuIHBv
cGRlZiBtYXJrcyBhbiBpbi1leHBhbnNpb24gbmVzdGVkCmRlZmluaXRpb24gdW51c2VkLCBjbG9u
ZSBpdHMgbmFtZSBpbiBjYXNlIGl0IGlzIGJlaW5nIHRyYWNlZC4KKGxvb2t1cF9zeW1ib2wpIFtT
WU1CT0xfSU5TRVJUXTogQ29uc2lzdGVudGx5IHVzZSBTWU1CT0xfTkFNRSgpLCBhbmQKc2hhcmUg
dGhlIG5hbWUgYWNyb3NzIGEgc3ltYm9sIHN0YWNrIGluc3RlYWQgb2YgbmVlZGluZyB0byBjbG9u
ZS4KKiBkb2MvbTQudGV4aSAoVW5kZWZpbmUpOiBUZXN0IHRoaXMuCiogTkVXUzogRG9jdW1lbnQg
dGhlIGZpeC4KCkZpeGVzOiBlZTQyN2I4M2I1ICgic3ltdGFiOiB1c2UgbGVzcyBtZW1vcnkgaW4g
cHVzaGRlZiBzdGFja3MiKQotLS0KIE5FV1MgICAgICAgICB8ICA0ICsrKysKIGRvYy9tNC50ZXhp
ICB8IDE1ICsrKysrKysrKysrKysrKwogc3JjL3N5bXRhYi5jIHwgMTMgKysrKysrKysrLS0tLQog
MyBmaWxlcyBjaGFuZ2VkLCAyOCBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL05FV1MgYi9ORVdTCmluZGV4IGVlNDQzY2E1Li43M2RiNjMwOSAxMDA2NDQKLS0tIGEv
TkVXUworKysgYi9ORVdTCkBAIC01LDQgKzUsOCBAQCBHTlUgTTQgTkVXUyAtIFVzZXIgdmlzaWJs
ZSBjaGFuZ2VzLgogKiogVGhlIGBzeXNjbWQnIGFuZCBgZXN5c2NtZCcgYnVpbHRpbnMgbm8gbG9u
Z2VyIG1pc2hhbmRsZSBhIGNvbW1hbmQgbGluZQogICAgc3RhcnRpbmcgd2l0aCBgLScgb3IgYCsn
LgoKKyoqIEZpeCByZWdyZXNzaW9uIGludHJvZHVjZWQgaW4gMS40LjE5IHdoZXJlIHRyYWNlIG91
dHB1dCAoc3VjaCBhcyB3aXRoCisgICBgZGVidWdtb2RlKHQpJykgY291bGQgcmVhZCBpbnZhbGlk
IG1lbW9yeSB3aGVuIHRyYWNpbmcgYSBzZXJpZXMgb2YKKyAgIHB1c2hlZCBtYWNyb3MgdGhhdCBh
cmUgcG9wcGVkIGR1cmluZyBhcmd1bWVudCBjb2xsZWN0aW9uLgorCiAqIE5vdGV3b3J0aHkgY2hh
bmdlcyBpbiByZWxlYXNlIDEuNC4xOSAoMjAyMS0wNS0yOCkgW3N0YWJsZV0KCiAqKiBBIG51bWJl
ciBvZiBwb3J0YWJpbGl0eSBpbXByb3ZlbWVudHMgaW5oZXJpdGVkIGZyb20gZ251bGliLCBpbmNs
dWRpbmcKZGlmZiAtLWdpdCBhL2RvYy9tNC50ZXhpIGIvZG9jL200LnRleGkKaW5kZXggOTljMjQ4
YmUuLjY1ZjcwMWE2IDEwMDY0NAotLS0gYS9kb2MvbTQudGV4aQorKysgYi9kb2MvbTQudGV4aQpA
QCAtMjIyNyw2ICsyMjI3LDIxIEBAIFVuZGVmaW5lCiBAcmVzdWx0e31mKGJ5ZSkKIEBlbmQgZXhh
bXBsZQoKK0BpZ25vcmUKK0Bjb21tZW50IFRoaXMgZXhhbXBsZSBpcyBub3Qgd29ydGggcHV0dGlu
ZyBpbiB0aGUgbWFudWFsLCBidXQgdHJpZ2dlcnMgYQorQGNvbW1lbnQgbWVtb3J5IGNvcnJ1cHRp
b24gcmVncmVzc2lvbiBkdXJpbmcgdHJhY2luZyBpbiAxLjQuMTkuCisKK0BleGFtcGxlCitkZWZp
bmUoYGEnLCBgcG9wZGVmKGBhJykxJylwdXNoZGVmKGBhJywgYDIkKicpZG5sCitkZWJ1Z21vZGUo
YHQnKWEocG9wZGVmKGBhJylhKQorQGVycm9ye31tNHRyYWNlOiAtMi0gcG9wZGVmCitAZXJyb3J7
fW00dHJhY2U6IC0yLSBhCitAZXJyb3J7fW00dHJhY2U6IC0yLSBwb3BkZWYKK0BlcnJvcnt9bTR0
cmFjZTogLTEtIGEKK0ByZXN1bHR7fTIxCitAZW5kIGV4YW1wbGUKK0BlbmQgaWdub3JlCisKIEl0
IGlzIG5vdCBhbiBlcnJvciBmb3IgQHZhcntuYW1lfSB0byBoYXZlIG5vIG1hY3JvIGRlZmluaXRp
b24uICBJbiB0aGF0CiBjYXNlLCBAY29kZXt1bmRlZmluZX0gZG9lcyBub3RoaW5nLgoKZGlmZiAt
LWdpdCBhL3NyYy9zeW10YWIuYyBiL3NyYy9zeW10YWIuYwppbmRleCA3NDJmMTkyYi4uNzY2ZWVk
NjkgMTAwNjQ0Ci0tLSBhL3NyYy9zeW10YWIuYworKysgYi9zcmMvc3ltdGFiLmMKQEAgLTE0MSw3
ICsxNDEsMTMgQEAgdm9pZAogZnJlZV9zeW1ib2wgKHN5bWJvbCAqc3ltKQogewogICBpZiAoU1lN
Qk9MX1BFTkRJTkdfRVhQQU5TSU9OUyAoc3ltKSA+IDApCi0gICAgU1lNQk9MX0RFTEVURUQgKHN5
bSkgPSB0cnVlOworICAgIHsKKyAgICAgIFNZTUJPTF9ERUxFVEVEIChzeW0pID0gdHJ1ZTsKKyAg
ICAgIGlmIChTWU1CT0xfU1RBQ0sgKHN5bSkpIHsKKyAgICAgICAgU1lNQk9MX05BTUUgKHN5bSkg
PSB4c3RyZHVwIChTWU1CT0xfTkFNRSAoc3ltKSk7CisgICAgICAgIFNZTUJPTF9TVEFDSyAoc3lt
KSA9IE5VTEw7CisgICAgICB9CisgICAgfQogICBlbHNlCiAgICAgewogICAgICAgaWYgKFNZTUJP
TF9TVEFDSyAoc3ltKSA9PSBOVUxMKQpAQCAtMjIwLDE1ICsyMjYsMTQgQEAgbG9va3VwX3N5bWJv
bCAoY29uc3QgY2hhciAqbmFtZSwgc3ltYm9sX2xvb2t1cCBtb2RlKQogICAgICAgICAgICAgICBT
WU1CT0xfVFlQRSAoc3ltKSA9IFRPS0VOX1ZPSUQ7CiAgICAgICAgICAgICAgIFNZTUJPTF9UUkFD
RUQgKHN5bSkgPSBTWU1CT0xfVFJBQ0VEIChvbGQpOwogICAgICAgICAgICAgICBzeW0tPmhhc2gg
PSBoOwotICAgICAgICAgICAgICBTWU1CT0xfTkFNRSAoc3ltKSA9IG9sZC0+bmFtZTsKLSAgICAg
ICAgICAgICAgb2xkLT5uYW1lID0geHN0cmR1cCAobmFtZSk7CisgICAgICAgICAgICAgIFNZTUJP
TF9OQU1FIChzeW0pID0gU1lNQk9MX05BTUUgKG9sZCk7CiAgICAgICAgICAgICAgIFNZTUJPTF9N
QUNST19BUkdTIChzeW0pID0gZmFsc2U7CiAgICAgICAgICAgICAgIFNZTUJPTF9CTElORF9OT19B
UkdTIChzeW0pID0gZmFsc2U7CiAgICAgICAgICAgICAgIFNZTUJPTF9ERUxFVEVEIChzeW0pID0g
ZmFsc2U7CiAgICAgICAgICAgICAgIFNZTUJPTF9QRU5ESU5HX0VYUEFOU0lPTlMgKHN5bSkgPSAw
OwoKICAgICAgICAgICAgICAgU1lNQk9MX1NUQUNLIChzeW0pID0gU1lNQk9MX1NUQUNLIChvbGQp
OwotICAgICAgICAgICAgICBTWU1CT0xfU1RBQ0sgKG9sZCkgPSBOVUxMOworICAgICAgICAgICAg
ICBTWU1CT0xfU1RBQ0sgKG9sZCkgPSBzeW07CiAgICAgICAgICAgICAgIHN5bS0+bmV4dCA9IG9s
ZC0+bmV4dDsKICAgICAgICAgICAgICAgb2xkLT5uZXh0ID0gTlVMTDsKICAgICAgICAgICAgICAg
KnNwcCA9IHN5bTsKLS0gCjIuMzkuMAoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fCk00LXBhdGNoZXMgbWFpbGluZyBsaXN0Ck00LXBhdGNoZXNAZ251Lm9y
ZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9tNC1wYXRjaGVzCg==