[PATCH branch-1.6] eval: Reject incomplete base prefix

Eric Blake via M4-patches <[email protected]> Wed, 28 May 2025 20:30:20 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
UE9TSVggaXMgY2xlYXIgdGhhdCBzdHJ0b2woIjB4IikgaXMgYW4gZXJyb3IgKHRoZXJlIG11c3Qg
YmUgZGlnaXRzCmFmdGVyIHRoZSBleHBsaWNpdCBiYXNlKTsgYW5kIG90aGVyIG00IGltcGxlbWVu
dGF0aW9ucyB0aGF0IHJlbHkgb24Kc3RydG9sIGZvciBldmFsIGhhdmUgcmVqZWN0ZWQgImV2YWwo
MHgpIi4gIEFsdGhvdWdoIGl0IGNhbiBiZSBhcmd1ZWQKdGhhdCByZWplY3Rpbmcgc29tZXRoaW5n
IHRoYXQgdXNlZCB0byBzaWxlbnRseSB3b3JrIGFzIDAgbWlnaHQgYnJlYWsKZXhpc3Rpbmcgc2Ny
aXB0cywgd2UgaGFkIG5ldmVyIGRvY3VtZW50ZWQgaXQgYXMgYSBmZWF0dXJlIGFuZCB0aGUgcmlz
awppcyBsb3cuCgpNZWFud2hpbGUsIHBhcnNpbmcgImV2YWwoMDgpIiBhcyAiMCIgZm9sbG93ZWQg
YnkgIjgiIGFsd2F5cyBwcm9kdWNlcyBhCnNlbWFudGljIGVycm9yLCBzaW5jZSA4IHdhcyBmb3Vu
ZCB3aGVuIGFuIG9wZXJhdG9yIHdhcyBleHBlY3RlZDsgYnV0CnRoZSBlcnJvciBtZXNzYWdlIGlz
IG5pY2VyIGlmIGEgZGlnaXQgdG9vIGxhcmdlIGZvciB0aGUgYmFzZSB0cmlnZ2Vycwp0aGUgc2Ft
ZSBuZXcgZXJyb3IgYXMgZm9yIGFuIGluY29tcGxldGUgYmFzZSBbImludmFsaWQgbnVtYmVyIl0g
cmF0aGVyCnRoYW4gdGhlIG9sZCB3YXkgWyJiYWQgZXhwcmVzc2lvbiBpbiBldmFsIChleGNlc3Mg
aW5wdXQpIl0uCgoqIHNyYy9ldmFsLmMgKE1JTl9QUkVDKTogTmV3IGRlZmluZSB0byBhdm9pZCBh
IG1hZ2ljIG51bWJlciB0bwpwYXJzZV9leHByLgooQkFETlVNLCBJTlZBTElEX05VTUJFUik6IE5l
dyBlbnVtIHZhbHVlcy4gIFNodWZmbGUgdmFsdWVzIG9uCm90aGVyIGV2YWxfdG9rZW5zIHRvIGtl
ZXAgbWF0aCBjb25zaXN0ZW50LgooZXZhbF9sZXgpOiBSZXR1cm4gQkFETlVNIG9uIGZhaWxlZCBu
dW1lcmljIHBhcnNlLgoocHJpbWFyeSwgcGFyc2VfZXhwciwgZXZhbHVhdGUpOiBIYW5kbGUgaW52
YWxpZCBudW1iZXJzLgoqIGRvYy9tNC50ZXhpIChFdmFsKTogVGVzdCBpdC4KKiBORVdTOiBEb2N1
bWVudCB0aGUgYnVnIGZpeC4KLS0tCgpUaGlzIHBhdGNoIGlzIHdvcnRoIGJhY2stcG9ydGluZyB0
byBtNCAxLjQueC4KCkZvciByZWZlcmVuY2UsIEJTRCBtNCBhbmQgbTRwIGJvdGggcmVqZWN0ICJl
dmFsKDB4KSIuICBDaGVja2luZyBvdGhlcgpsYW5ndWFnZXMsIGJhc2ggcmVqZWN0cyAkKCgwYikp
IGJ1dCBhY2NpZGVudGFsbHkgYWNjZXB0cyAkKCgweCkpLgpnYXdrIHNpbGVudGx5IGFjY2VwdHMg
MHgsIGJ1dCBoZXksIGl0IHNpbGVudGx5IGFjY2VwdHMgZ2FyYmFnZSBsaWtlIDBxCnRvby4gIEMs
IFB5dGhvbiwgR28sIFJ1c3QsIGFuZCBtYW55IG90aGVyIGNvbXBpbGVkIGxhbmd1YWdlcyByZWpl
Y3QKYmFyZSAweC4KCiBORVdTICAgICAgICB8ICA0ICsrKwogZG9jL200LnRleGkgfCAgOCArKysr
Ky0KIHNyYy9ldmFsLmMgIHwgNzUgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKyst
LS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgMjYg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggZjI1ZGFjM2QuLjk2
MGU0MmY3IDEwMDY0NAotLS0gYS9ORVdTCisrKyBiL05FV1MKQEAgLTEyMiw2ICsxMjIsMTAgQEAg
R05VIE00IE5FV1MgLSBVc2VyIHZpc2libGUgY2hhbmdlcy4KICAgIGNvbnRleHQgb2YgYSBtYWNy
byBuYW1lLCByYXRoZXIgdGhhbiBhY3Rpbmcgb24gdGhlIGVtcHR5IHN0cmluZy4gIFRoaXMKICAg
IHdhcyBhbHJlYWR5IGRvbmUgZm9yIGBkZWZpbmUnLCBgcHVzaGRlZicsIGBidWlsdGluJywgYW5k
IGBpbmRpcicuCgorKiogRml4IHRoZSBgZXZhbCcgYnVpbHRpbiB0byByZWplY3QgaW5wdXQgbGlr
ZSBgMHgnIHRoYXQgQyBkb2VzIG5vdAorICAgYWNjZXB0IGFzIGFuIGludGVnZXIgbGl0ZXJhbCwg
cmF0aGVyIHRoYW4gc2lsZW50bHkgdHJlYXRpbmcgaXQgYXMgemVybworICAgKHByZXNlbnQgc2lu
Y2UgInRoZSBiZWdpbm5pbmciKS4KKwogKiogRW5oYW5jZSB0aGUgYGV2YWwnIGJ1aWx0aW4gdG8g
dW5kZXJzdGFuZCB0aGUgYD86JyBhbmQgYD4+Picgb3BlcmF0b3JzLAogICAgYW5kIGRvd25ncmFk
ZSBhIGZhaWxlZCBwYXJzZSBkdWUgdG8gYW4gdW5rbm93biBvcGVyYXRvciBmcm9tIGFuIGVycm9y
IHRvCiAgICBhIHdhcm5pbmcgKHRoZSBzYW1lIGFzIGZvciBhbGwgb3RoZXIgc3ludGF4IGVycm9y
cykuICBGdXJ0aGVyLCB0aGUKZGlmZiAtLWdpdCBhL2RvYy9tNC50ZXhpIGIvZG9jL200LnRleGkK
aW5kZXggMDFiMGE5MTUuLjJiZDJkMDQyIDEwMDY0NAotLS0gYS9kb2MvbTQudGV4aQorKysgYi9k
b2MvbTQudGV4aQpAQCAtNzM0MSw2ICs3MzQxLDEyIEBAIEV2YWwKIGV2YWwoYDErJykKIEBlcnJv
cnt9bTQ6c3RkaW46MTA6IHdhcm5pbmc6IGV2YWw6IG1pc3Npbmcgb3BlcmFuZDogJzErJwogQHJl
c3VsdHt9CitldmFsKGAweCcpCitAZXJyb3J7fW00OnN0ZGluOjExOiB3YXJuaW5nOiBldmFsOiBp
bnZhbGlkIG51bWJlcjogJzB4JworQHJlc3VsdHt9CitldmFsKGAwMTIzOScpCitAZXJyb3J7fW00
OnN0ZGluOjEyOiB3YXJuaW5nOiBldmFsOiBpbnZhbGlkIG51bWJlcjogJzAxMjM5JworQHJlc3Vs
dHt9CiBkZWZpbmUoYGZvbycsIGA2NjYnKQogQHJlc3VsdHt9CiBldmFsKDByMzY6Zm9vKQpAQCAt
NzM1MCw3ICs3MzU2LDcgQEAgRXZhbAogZXZhbChgMFIzNjonZGVmbihgZm9vJykpCiBAcmVzdWx0
e303OTk4CiBldmFsKGBmb28gLyA2JykKLUBlcnJvcnt9bTQ6c3RkaW46MTU6IHdhcm5pbmc6IGV2
YWw6IGJhZCBpbnB1dDogJ2ZvbyAvIDYnCitAZXJyb3J7fW00OnN0ZGluOjE3OiB3YXJuaW5nOiBl
dmFsOiBiYWQgaW5wdXQ6ICdmb28gLyA2JwogQHJlc3VsdHt9CiBldmFsKGZvbyAvIDYpCiBAcmVz
dWx0e30xMTEKZGlmZiAtLWdpdCBhL3NyYy9ldmFsLmMgYi9zcmMvZXZhbC5jCmluZGV4IDIzNmIz
NGNhLi4xOGNhZTllMiAxMDA2NDQKLS0tIGEvc3JjL2V2YWwuYworKysgYi9zcmMvZXZhbC5jCkBA
IC0yOCwxMCArMjgsMTMgQEAKCiAvKiBFdmFsdWF0ZXMgdG9rZW4gdHlwZXMuICAqLwoKKyNkZWZp
bmUgTUlOX1BSRUMgMgorCiB0eXBlZGVmIGVudW0gZXZhbF90b2tlbgogewotICAvKiBWYWx1ZSAv
IDEwIGlzIHByZWNlZGVuY2Ugb3JkZXIuICAqLworICAvKiBWYWx1ZSAvIDEwIGlzIHByZWNlZGVu
Y2Ugb3JkZXIsIGlmID49IE1JTl9QUkVDLiAgKi8KICAgRVJST1IgPSAwLAorICBCQUROVU0sCiAg
IEJBRE9QLAogICBFTVBUWSwKICAgRU9URVhULApAQCAtNDEsMjggKzQ0LDI4IEBAIHR5cGVkZWYg
ZW51bSBldmFsX3Rva2VuCiAgIE5PVCwKICAgTlVNQkVSLAogICBDT0xPTiwKLSAgUVVFU1RJT04g
PSAxMCwKLSAgTE9SID0gMjAsCi0gIExBTkQgPSAzMCwKLSAgT1IgPSA0MCwKLSAgWE9SID0gNTAs
Ci0gIEFORCA9IDYwLAotICBFUSA9IDcwLAorICBRVUVTVElPTiA9IDIwLAorICBMT1IgPSAzMCwK
KyAgTEFORCA9IDQwLAorICBPUiA9IDUwLAorICBYT1IgPSA2MCwKKyAgQU5EID0gNzAsCisgIEVR
ID0gODAsCiAgIE5PVEVRLAotICBHVCA9IDgwLAorICBHVCA9IDkwLAogICBHVEVRLAogICBMUywK
ICAgTFNFUSwKLSAgTFNISUZUID0gOTAsCisgIExTSElGVCA9IDEwMCwKICAgUlNISUZULAogICBV
UlNISUZULAogICAvKiBwcmVjZWRlbmNlIGdpdmVuIGZvciBiaW5hcnkgb3A7IFBMVVMgYW5kIE1J
TlVTIGFsc28gc2VydmUgYXMgYSB1bmFyeSBvcCAqLwotICBQTFVTID0gMTAwLAorICBQTFVTID0g
MTEwLAogICBNSU5VUywKLSAgVElNRVMgPSAxMTAsCisgIFRJTUVTID0gMTIwLAogICBESVZJREUs
CiAgIE1PRFVMTywKLSAgRVhQT05FTlQgPSAxMjAKKyAgRVhQT05FTlQgPSAxMzAKIH0KIGV2YWxf
dG9rZW47CgpAQCAtODIsNiArODUsNyBAQCB0eXBlZGVmIGVudW0gZXZhbF9lcnJvcgogICBNSVNT
SU5HX0NPTE9OLAogICBVTktOT1dOX0lOUFVULAogICBFWENFU1NfSU5QVVQsCisgIElOVkFMSURf
TlVNQkVSLAogICBJTlZBTElEX09QRVJBVE9SLAogICBNSVNTSU5HX1ZBTFVFLAogICBFTVBUWV9B
UkdVTUVOVApAQCAtMTQxLDYgKzE0NSw3IEBAIGV2YWxfbGV4IChpbnQzMl90ICp2YWwpCiAgICAg
ICAgICBUaGVyZWZvcmUgdXNlIGFuIHVuc2lnbmVkIGludGVnZXIgdHlwZSB0byBhdm9pZCB1bmRl
ZmluZWQgYmVoYXZpb3VyCiAgICAgICAgICB3aGVuIHBhcnNpbmcgJy0yMTQ3NDgzNjQ4Jy4gICov
CiAgICAgICB1aW50MzJfdCB2YWx1ZTsKKyAgICAgIGJvb2wgc2Vlbl9kaWdpdCA9IGZhbHNlOwoK
ICAgICAgIGlmICgqZXZhbF90ZXh0ID09ICcwJykKICAgICAgICAgewpAQCAtMTY2LDE5ICsxNzEs
MjAgQEAgZXZhbF9sZXggKGludDMyX3QgKnZhbCkKICAgICAgICAgICAgICAgd2hpbGUgKGNfaXNk
aWdpdCAoKmV2YWxfdGV4dCkgJiYgYmFzZSA8PSAzNikKICAgICAgICAgICAgICAgICBiYXNlID0g
MTAgKiBiYXNlICsgKmV2YWxfdGV4dCsrIC0gJzAnOwogICAgICAgICAgICAgICBpZiAoYmFzZSA9
PSAwIHx8IGJhc2UgPiAzNiB8fCAqZXZhbF90ZXh0ICE9ICc6JykKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRVJST1I7CisgICAgICAgICAgICAgICAgcmV0dXJuIEJBRE5VTTsKICAgICAgICAgICAg
ICAgZXZhbF90ZXh0Kys7CiAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICAgIGJhc2UgPSA4OworICAgICAgICAgICAgICBzZWVuX2RpZ2l0ID0g
dHJ1ZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgZWxzZQogICAgICAgICBiYXNl
ID0gMTA7CgogICAgICAgdmFsdWUgPSAwOwotICAgICAgZm9yICg7ICpldmFsX3RleHQ7IGV2YWxf
dGV4dCsrKQorICAgICAgZm9yICg7ICpldmFsX3RleHQ7IGV2YWxfdGV4dCsrLCBzZWVuX2RpZ2l0
ID0gdHJ1ZSkKICAgICAgICAgewogICAgICAgICAgIGlmIChjX2lzZGlnaXQgKCpldmFsX3RleHQp
KQogICAgICAgICAgICAgZGlnaXQgPSAqZXZhbF90ZXh0IC0gJzAnOwpAQCAtMTk2LDE0ICsyMDIs
MTYgQEAgZXZhbF9sZXggKGludDMyX3QgKnZhbCkKICAgICAgICAgICAgICAgZWxzZSBpZiAoZGln
aXQgPT0gMCAmJiB2YWx1ZSA9PSAwKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgcmV0
dXJuIEJBRE5VTTsKICAgICAgICAgICAgIH0KICAgICAgICAgICBlbHNlIGlmIChkaWdpdCA+PSBi
YXNlKQotICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICByZXR1cm4gQkFETlVNOwogICAg
ICAgICAgIGVsc2UKICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgKiBiYXNlICsgZGlnaXQ7CiAg
ICAgICAgIH0KICAgICAgICp2YWwgPSB2YWx1ZTsKKyAgICAgIGlmICghc2Vlbl9kaWdpdCkKKyAg
ICAgICAgcmV0dXJuIEJBRE5VTTsKICAgICAgIHJldHVybiBOVU1CRVI7CiAgICAgfQoKQEAgLTMz
NiwxMyArMzQ0LDE1IEBAIHByaW1hcnkgKGludDMyX3QgKnYxKQogICAgICAgLyogUGFyZW50aGVz
aXMgKi8KICAgICBjYXNlIExFRlRQOgogICAgICAgZXIgPSBwcmltYXJ5ICh2MSk7Ci0gICAgICBl
ciA9IHBhcnNlX2V4cHIgKHYxLCBlciwgMSk7CisgICAgICBlciA9IHBhcnNlX2V4cHIgKHYxLCBl
ciwgTUlOX1BSRUMpOwogICAgICAgaWYgKGVyID49IFNZTlRBWF9FUlJPUikKICAgICAgICAgcmV0
dXJuIGVyOwogICAgICAgc3dpdGNoIChldmFsX2xleCAoJnYyKSkKICAgICAgICAgewogICAgICAg
ICBjYXNlIEVSUk9SOgogICAgICAgICAgIHJldHVybiBVTktOT1dOX0lOUFVUOworICAgICAgICBj
YXNlIEJBRE5VTToKKyAgICAgICAgICByZXR1cm4gSU5WQUxJRF9OVU1CRVI7CiAgICAgICAgIGNh
c2UgQkFET1A6CiAgICAgICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUT1I7CiAgICAgICAgIGNh
c2UgUklHSFRQOgpAQCAtMzc0LDYgKzM4NCw4IEBAIHByaW1hcnkgKGludDMyX3QgKnYxKQogICAg
ICAgLyogQW55dGhpbmcgZWxzZSAqLwogICAgIGNhc2UgRVJST1I6CiAgICAgICByZXR1cm4gVU5L
Tk9XTl9JTlBVVDsKKyAgICBjYXNlIEJBRE5VTToKKyAgICAgIHJldHVybiBJTlZBTElEX05VTUJF
UjsKICAgICBjYXNlIEJBRE9QOgogICAgICAgcmV0dXJuIElOVkFMSURfT1BFUkFUT1I7CiAgICAg
Y2FzZSBFTVBUWToKQEAgLTU1MCwxNCArNTYyLDE2IEBAIHBhcnNlX2V4cHIgKGludDMyX3QgKnYx
LCBldmFsX2Vycm9yIGVyLCB1bnNpZ25lZCBtaW5fcHJlYykKICAgICAgICAgICBicmVhazsKCiAg
ICAgICAgIGNhc2UgUVVFU1RJT046Ci0gICAgICAgICAgaWYgKGV0MiA9PSBCQURPUCkKKyAgICAg
ICAgICBpZiAoZXQyID09IEJBRE5VTSkKKyAgICAgICAgICAgIGVyID0gSU5WQUxJRF9OVU1CRVI7
CisgICAgICAgICAgZWxzZSBpZiAoZXQyID09IEJBRE9QKQogICAgICAgICAgICAgZXIgPSBJTlZB
TElEX09QRVJBVE9SOwogICAgICAgICAgIGVsc2UgaWYgKGV0MiAhPSBDT0xPTikKICAgICAgICAg
ICAgIGVyID0gTUlTU0lOR19DT0xPTjsKICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgIGVyMyA9IHByaW1hcnkgKCZ2Myk7Ci0gICAgICAgICAgICAgIGVyMyA9IHBh
cnNlX2V4cHIgKCZ2MywgZXIzLCAxKTsKKyAgICAgICAgICAgICAgZXIzID0gcGFyc2VfZXhwciAo
JnYzLCBlcjMsIE1JTl9QUkVDKTsKICAgICAgICAgICAgICAgaWYgKGVyMyA+PSBTWU5UQVhfRVJS
T1IpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGVyMzsKICAgICAgICAgICAgICAgaWYgKCp2MSkK
QEAgLTU5MSwxNCArNjA1LDIxIEBAIGV2YWx1YXRlIChjb25zdCBjYWxsX2luZm8gKm1lLCBjb25z
dCBjaGFyICpleHByLCBzaXplX3QgbGVuLCBpbnQzMl90ICp2YWwpCgogICBldmFsX2luaXRfbGV4
IChleHByLCBsZW4pOwogICBlcnIgPSBwcmltYXJ5ICh2YWwpOwotICBlcnIgPSBwYXJzZV9leHBy
ICh2YWwsIGVyciwgMSk7CisgIGVyciA9IHBhcnNlX2V4cHIgKHZhbCwgZXJyLCBNSU5fUFJFQyk7
CgogICBpZiAoZXJyID09IE5PX0VSUk9SICYmIGV2YWxfdGV4dCAhPSBlbmRfdGV4dCkKICAgICB7
Ci0gICAgICBpZiAoZXZhbF9sZXggKHZhbCkgPT0gQkFET1ApCi0gICAgICAgIGVyciA9IElOVkFM
SURfT1BFUkFUT1I7Ci0gICAgICBlbHNlCi0gICAgICAgIGVyciA9IEVYQ0VTU19JTlBVVDsKKyAg
ICAgIHN3aXRjaCAoZXZhbF9sZXggKHZhbCkpCisgICAgICAgIHsKKyAgICAgICAgY2FzZSBCQURO
VU06CisgICAgICAgICAgZXJyID0gSU5WQUxJRF9OVU1CRVI7CisgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgQkFET1A6CisgICAgICAgICAgZXJyID0gSU5WQUxJRF9PUEVSQVRPUjsKKyAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICBlcnIgPSBFWENFU1Nf
SU5QVVQ7CisgICAgICAgIH0KICAgICB9CgogICBpZiAoZXJyICE9IE5PX0VSUk9SKQpAQCAtNjM0
LDYgKzY1NSwxMCBAQCBldmFsdWF0ZSAoY29uc3QgY2FsbF9pbmZvICptZSwgY29uc3QgY2hhciAq
ZXhwciwgc2l6ZV90IGxlbiwgaW50MzJfdCAqdmFsKQogICAgICAgbTRfd2FybiAoMCwgbWUsIF8o
ImV4Y2VzcyBpbnB1dDogJXMiKSwgZXhwcik7CiAgICAgICBicmVhazsKCisgICAgY2FzZSBJTlZB
TElEX05VTUJFUjoKKyAgICAgIG00X3dhcm4gKDAsIG1lLCBfKCJpbnZhbGlkIG51bWJlcjogJXMi
KSwgZXhwcik7CisgICAgICBicmVhazsKKwogICAgIGNhc2UgSU5WQUxJRF9PUEVSQVRPUjoKICAg
ICAgIG00X3dhcm4gKDAsIG1lLCBfKCJpbnZhbGlkIG9wZXJhdG9yOiAlcyIpLCBleHByKTsKICAg
ICAgIGJyZWFrOwotLSAKMi40OS4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KTTQtcGF0Y2hlcyBtYWlsaW5nIGxpc3QKTTQtcGF0Y2hlc0BnbnUub3Jn
Cmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL200LXBhdGNoZXMK