[PATCH] freeze: Open frozen file in binary

Eric Blake via M4-patches <[email protected]> Fri, 4 Apr 2025 09:37:18 -0500
Newsgroups gmane.comp.gnu.m4.patches
Message-ID <[email protected]>
RnJvemVuIGZpbGVzIG11c3Qgbm90IHVuZGVyZ28gbmV3bGluZSBtdW5naW5nLiAgVG8gc3VwcG9y
dCB0aGlzLCB0ZWFjaAptNF9wYXRoX3NlYXJjaCB3aGV0aGVyIGEgZmlsZSBpcyBva2F5IGluIHRl
eHQgbW9kZSAobm9ybWFsIG00IGlucHV0KQpvciBtdXN0IGJlIGJpbmFyeSAoYSBmcm96ZW4gZmls
ZSkuCgoqIHNyYy9tNC5oIChtNF9wYXRoX3NlYXJjaCk6IFVwZGF0ZSBwcm90b3R5cGUuCiogc3Jj
L3BhdGguYyAobTRfZm9wZW4sIG00X3BhdGhfc2VhcmNoKTogSG9ub3IgYmluYXJ5IG1vZGUuCiog
c3JjL2J1aWx0aW4uYyAobTRfdW5kaXZlcnQsIGluY2x1ZGUpOiBVcGRhdGUgY2FsbGVycy4KKiBz
cmMvZnJlZXplLmMgKHJlbG9hZF9mcm96ZW5fc3RhdGUpOiBMaWtld2lzZS4KKiBzcmMvbTQuYyAo
cHJvY2Vzc19maWxlKTogTGlrZXdpc2UuClJlcG9ydGVkIGJ5IEp1YW4gTWFudWVsIEd1ZXJyZXJv
IGluCmh0dHBzOi8vbGlzdHMuZ251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLW00LzIwMjMtMDEvbXNn
MDAwMDYuaHRtbAotLS0KIHNyYy9idWlsdGluLmMgfCAgNCArKy0tCiBzcmMvZnJlZXplLmMgIHwg
IDIgKy0KIHNyYy9tNC5jICAgICAgfCAgMiArLQogc3JjL200LmggICAgICB8ICAyICstCiBzcmMv
cGF0aC5jICAgIHwgMjAgKysrKysrKysrKystLS0tLS0tLS0KIDUgZmlsZXMgY2hhbmdlZCwgMTYg
aW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2J1aWx0aW4u
YyBiL3NyYy9idWlsdGluLmMKaW5kZXggMTM0NjA3ZjYuLmNjM2QxYzQyIDEwMDY0NAotLS0gYS9z
cmMvYnVpbHRpbi5jCisrKyBiL3NyYy9idWlsdGluLmMKQEAgLTEyNjgsNyArMTI2OCw3IEBAIG00
X3VuZGl2ZXJ0IChzdHJ1Y3Qgb2JzdGFjayAqb2JzIE1BWUJFX1VOVVNFRCwgaW50IGFyZ2MsIHRv
a2VuX2RhdGEgKiphcmd2KQogICAgICAgICAgICAgICAgICAgICBfKCJub24tbnVtZXJpYyBhcmd1
bWVudCB0byBidWlsdGluIGAlcyciKSwgQVJHICgwKSkpOwogICAgICAgICBlbHNlCiAgICAgICAg
ICAgewotICAgICAgICAgICAgZnAgPSBtNF9wYXRoX3NlYXJjaCAoQVJHIChpKSwgTlVMTCk7Cisg
ICAgICAgICAgICBmcCA9IG00X3BhdGhfc2VhcmNoIChBUkcgKGkpLCBmYWxzZSwgTlVMTCk7CiAg
ICAgICAgICAgICBpZiAoZnAgIT0gTlVMTCkKICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgIGluc2VydF9maWxlIChmcCk7CkBAIC0xMzgyLDcgKzEzODIsNyBAQCBpbmNsdWRlIChpbnQg
YXJnYywgdG9rZW5fZGF0YSAqKmFyZ3YsIGJvb2wgc2lsZW50KQogICBpZiAoYmFkX2FyZ2MgKGFy
Z3ZbMF0sIGFyZ2MsIDIsIDIpKQogICAgIHJldHVybjsKCi0gIGZwID0gbTRfcGF0aF9zZWFyY2gg
KEFSRyAoMSksICZuYW1lKTsKKyAgZnAgPSBtNF9wYXRoX3NlYXJjaCAoQVJHICgxKSwgZmFsc2Us
ICZuYW1lKTsKICAgaWYgKGZwID09IE5VTEwpCiAgICAgewogICAgICAgaWYgKCFzaWxlbnQpCmRp
ZmYgLS1naXQgYS9zcmMvZnJlZXplLmMgYi9zcmMvZnJlZXplLmMKaW5kZXggNTBiMTk2NmEuLmNm
ZTVmOWRhIDEwMDY0NAotLS0gYS9zcmMvZnJlZXplLmMKKysrIGIvc3JjL2ZyZWV6ZS5jCkBAIC0y
NjYsNyArMjY2LDcgQEAgcmVsb2FkX2Zyb3plbl9zdGF0ZSAoY29uc3QgY2hhciAqbmFtZSkKICAg
ICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFwKICAgd2hpbGUgKDApCgotICBmaWxlID0gbTRfcGF0aF9zZWFyY2ggKG5h
bWUsIE5VTEwpOworICBmaWxlID0gbTRfcGF0aF9zZWFyY2ggKG5hbWUsICEhT19CSU5BUlksIE5V
TEwpOwogICBpZiAoZmlsZSA9PSBOVUxMKQogICAgIG00X2ZhaWx1cmUgKGVycm5vLCBfKCJjYW5u
b3Qgb3BlbiAlcyIpLCBuYW1lKTsKICAgY3VycmVudF9maWxlID0gbmFtZTsKZGlmZiAtLWdpdCBh
L3NyYy9tNC5jIGIvc3JjL200LmMKaW5kZXggMTRmNGY3NTMuLjUyOTI2MTM5IDEwMDY0NAotLS0g
YS9zcmMvbTQuYworKysgYi9zcmMvbTQuYwpAQCAtMzc2LDcgKzM3Niw3IEBAIHByb2Nlc3NfZmls
ZSAoY29uc3QgY2hhciAqbmFtZSkKICAgZWxzZQogICAgIHsKICAgICAgIGNoYXIgKmZ1bGxfbmFt
ZTsKLSAgICAgIEZJTEUgKmZwID0gbTRfcGF0aF9zZWFyY2ggKG5hbWUsICZmdWxsX25hbWUpOwor
ICAgICAgRklMRSAqZnAgPSBtNF9wYXRoX3NlYXJjaCAobmFtZSwgZmFsc2UsICZmdWxsX25hbWUp
OwogICAgICAgaWYgKGZwID09IE5VTEwpCiAgICAgICAgIHsKICAgICAgICAgICBlcnJvciAoMCwg
ZXJybm8sIF8oImNhbm5vdCBvcGVuIGAlcyciKSwgbmFtZSk7CmRpZmYgLS1naXQgYS9zcmMvbTQu
aCBiL3NyYy9tNC5oCmluZGV4IDkwODNhMjgxLi4wNjIyMDBhMSAxMDA2NDQKLS0tIGEvc3JjL200
LmgKKysrIGIvc3JjL200LmgKQEAgLTQ1OCw3ICs0NTgsNyBAQCBleHRlcm4gY29uc3QgYnVpbHRp
biAqZmluZF9idWlsdGluX2J5X25hbWUgKGNvbnN0IGNoYXIgKik7CiBleHRlcm4gdm9pZCBpbmNs
dWRlX2luaXQgKHZvaWQpOwogZXh0ZXJuIHZvaWQgaW5jbHVkZV9lbnZfaW5pdCAodm9pZCk7CiBl
eHRlcm4gdm9pZCBhZGRfaW5jbHVkZV9kaXJlY3RvcnkgKGNvbnN0IGNoYXIgKik7Ci1leHRlcm4g
RklMRSAqbTRfcGF0aF9zZWFyY2ggKGNvbnN0IGNoYXIgKiwgY2hhciAqKik7CitleHRlcm4gRklM
RSAqbTRfcGF0aF9zZWFyY2ggKGNvbnN0IGNoYXIgKiwgYm9vbCwgY2hhciAqKik7CiAMCiAvKiBG
aWxlOiBldmFsLmMgIC0tLSBleHByZXNzaW9uIGV2YWx1YXRpb24uICAqLwoKZGlmZiAtLWdpdCBh
L3NyYy9wYXRoLmMgYi9zcmMvcGF0aC5jCmluZGV4IDM4MDRjZDU3Li5hZjVlN2NmMCAxMDA2NDQK
LS0tIGEvc3JjL3BhdGguYworKysgYi9zcmMvcGF0aC5jCkBAIC0xMDYsMTEgKzEwNiwxMiBAQCBh
ZGRfaW5jbHVkZV9kaXJlY3RvcnkgKGNvbnN0IGNoYXIgKmRpcikKIH0KCiAvKiBBdHRlbXB0IHRv
IG9wZW4gRklMRTsgaWYgaXQgb3BlbnMsIHZlcmlmeSB0aGF0IGl0IGlzIG5vdCBhCi0gICBkaXJl
Y3RvcnksIGFuZCBlbnN1cmUgaXQgZG9lcyBub3QgbGVhayBhY3Jvc3MgZXhlY3MuICAqLworICAg
ZGlyZWN0b3J5LCBhbmQgZW5zdXJlIGl0IGRvZXMgbm90IGxlYWsgYWNyb3NzIGV4ZWNzLiAgVXNl
IGJpbmFyeQorICAgbW9kZSBpbnN0ZWFkIG9mIHRleHQgaWYgQklOQVJZIGlzIHNldC4gICovCiBz
dGF0aWMgRklMRSAqCi1tNF9mb3BlbiAoY29uc3QgY2hhciAqZmlsZSkKK200X2ZvcGVuIChjb25z
dCBjaGFyICpmaWxlLCBib29sIGJpbmFyeSkKIHsKLSAgRklMRSAqZnAgPSBmb3BlbiAoZmlsZSwg
InJlIik7CisgIEZJTEUgKmZwID0gZm9wZW4gKGZpbGUsIGJpbmFyeSA/ICJyYmUiIDogInJlIik7
CiAgIGlmIChmcCkKICAgICB7CiAgICAgICBzdHJ1Y3Qgc3RhdCBzdDsKQEAgLTEyNiwxMiArMTI3
LDEzIEBAIG00X2ZvcGVuIChjb25zdCBjaGFyICpmaWxlKQogfQoKIC8qIFNlYXJjaCBmb3IgRklM
RSwgZmlyc3QgaW4gYC4nLCB0aGVuIGFjY29yZGluZyB0byAtSSBvcHRpb25zLiAgSWYKLSAgIHN1
Y2Nlc3NmdWwsIHJldHVybiB0aGUgb3BlbiBmaWxlLCBhbmQgaWYgUkVTVUxUIGlzIG5vdCBOVUxM
LCBzZXQKLSAgICpSRVNVTFQgdG8gYSBtYWxsb2MnZCBzdHJpbmcgdGhhdCByZXByZXNlbnRzIHRo
ZSBmaWxlIGZvdW5kIHdpdGgKLSAgIHJlc3BlY3QgdG8gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJl
Y3RvcnkuICAqLworICAgc3VjY2Vzc2Z1bCwgcmV0dXJuIHRoZSBvcGVuIGZpbGUgKGluIEJJTkFS
WSBtb2RlIGlmIHJlcXVlc3RlZCksIGFuZAorICAgaWYgUkVTVUxUIGlzIG5vdCBOVUxMLCBzZXQg
KlJFU1VMVCB0byBhIG1hbGxvYydkIHN0cmluZyB0aGF0CisgICByZXByZXNlbnRzIHRoZSBmaWxl
IGZvdW5kIHdpdGggcmVzcGVjdCB0byB0aGUgY3VycmVudCB3b3JraW5nCisgICBkaXJlY3Rvcnku
ICAqLwoKIEZJTEUgKgotbTRfcGF0aF9zZWFyY2ggKGNvbnN0IGNoYXIgKmZpbGUsIGNoYXIgKipy
ZXN1bHQpCittNF9wYXRoX3NlYXJjaCAoY29uc3QgY2hhciAqZmlsZSwgYm9vbCBiaW5hcnksIGNo
YXIgKipyZXN1bHQpCiB7CiAgIEZJTEUgKmZwOwogICBpbmNsdWRlcyAqaW5jbDsKQEAgLTE0OSw3
ICsxNTEsNyBAQCBtNF9wYXRoX3NlYXJjaCAoY29uc3QgY2hhciAqZmlsZSwgY2hhciAqKnJlc3Vs
dCkKICAgICB9CgogICAvKiBMb29rIGluIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkgZmlyc3Qu
ICAqLwotICBmcCA9IG00X2ZvcGVuIChmaWxlKTsKKyAgZnAgPSBtNF9mb3BlbiAoZmlsZSwgYmlu
YXJ5KTsKICAgaWYgKGZwICE9IE5VTEwpCiAgICAgewogICAgICAgaWYgKHJlc3VsdCkKQEAgLTE3
MCw3ICsxNzIsNyBAQCBtNF9wYXRoX3NlYXJjaCAoY29uc3QgY2hhciAqZmlsZSwgY2hhciAqKnJl
c3VsdCkKICAgICAgIHhmcHJpbnRmIChzdGRlcnIsICJtNF9wYXRoX3NlYXJjaCAoJXMpIC0tIHRy
eWluZyAlc1xuIiwgZmlsZSwgbmFtZSk7CiAjZW5kaWYKCi0gICAgICBmcCA9IG00X2ZvcGVuIChu
YW1lKTsKKyAgICAgIGZwID0gbTRfZm9wZW4gKG5hbWUsIGJpbmFyeSk7CiAgICAgICBpZiAoZnAg
IT0gTlVMTCkKICAgICAgICAgewogICAgICAgICAgIGlmIChkZWJ1Z19sZXZlbCAmIERFQlVHX1RS
QUNFX1BBVEgpCi0tIAoyLjQ5LjAKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fXwpNNC1wYXRjaGVzIG1haWxpbmcgbGlzdApNNC1wYXRjaGVzQGdudS5vcmcK
aHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vbTQtcGF0Y2hlcwo=