Big endian issues

Reinhard Max <[email protected]> Mon, 13 Mar 2023 18:47:57 +0100 (CET)
Newsgroups gmane.comp.security.virus.clamav.devel
Message-ID <[email protected]>
SGksCgp0aGlzIGlzIGEgZm9sbG93dXAgdG8gdGhlICJUZXN0aW5nIGZvciBCaWcgRW5kaWFuIEFy
Y2hpdGVjdHVyZXMiIAp0aHJlYWQgb24gdGhlIGNsYW1hdi11c2VycyBsaXN0IGluIEphbnVhcnku
CgpJIHJhbiBpbnRvIHRoZSBzYW1lIHRlc3QgZmFpbHVyZXMgb24gYmlnIGVuZGlhbiBhcmNoaXRl
Y3R1cmVzIHdoZW4gCnVwZ3JhZGluZyBDbGFtQVYgdG8gMS4wLjEgZm9yIG9wZW5TVVNFLiBJbiBh
ZGRpdGlvbiB0byB0aGUgZml4ZXMgZm9yIAp0aGUgcGVpbmZvLT5kaXJzWzFdIGFycmF5IGZyb20g
dGhlIERlYmlhbiBwYXRjaCBJIGZvdW5kIHNvbWUgbW9yZSAKbWVtYmVycyBvZiBwZWluZm8gYW5k
IHN1Yi1zdHJ1Y3R1cmVzIHRoYXQgYXBwZWFyZWQgdG8gYmUgbWlzc2luZyAKZW5kaWFubmVzcyBj
b3JyZWN0aW9uIGluIHBlLmMuIEJ1dCB0aGV5IGFwcGFyZW50bHkgZGlkbid0IGJyZWFrIGFueSAK
ZXhpc3RpbmcgdGVzdC4gU29tZSBvZiB0aGVtIHdlcmUgYWxyZWFkeSB0YWdnZWQgd2l0aCBjb21t
ZW50cyB0ZWxsaW5nIAp0aGF0IGVuZGlhbm5lc3MgY29ycmVjdGlvbnMgYXJlIHN0aWxsIG1pc3Np
bmcgaGVyZS4KCkZpbmQgYmVsb3cgYW4gZW5oYW5jZWQgcGF0Y2ggdGhhdCBhbHNvIGNvdmVycyB0
aGVzZSBjYXNlcywgYnV0IEkgYW0gCm5vdCBzdXJlIGlmIEkgZm91bmQgdGhlbSBhbGwuCgpBZGRp
dGlvbmFsbHkgSSB3b25kZXIgaWYgaXQgd291bGRuJ3QgYmUgYmV0dGVyIHRvIHB1dCBhbGwgdGhl
c2UgCmNvbnZlcnNpb25zIGludG8gb25lIHBsYWNlIGFuZCBjYWxsIHRoZW0gYWZ0ZXIgcG9wdWxh
dGluZyBwZWluZm8gCmluc3RlYWQgb2Ygc2NhdHRlcmluZyB0aGVtIGFjcm9zcyB0aGUgd2hvbGUg
ZmlsZSB3aGVuZXZlciBvbmUgb2YgdGhlIAphZmZlY3RlZCBmaWVsZCBnZXRzIHJlYWQuCgpjdQpS
ZWluaGFyZAoKLS0tIGxpYmNsYW1hdi9wZS5jLm9yaWcKKysrIGxpYmNsYW1hdi9wZS5jCkBAIC0y
NDIyLDIyICsyNDIyLDIwIEBAIHN0YXRpYyBjbF9lcnJvcl90IGhhc2hfaW1wdGJsKGNsaV9jdHgg
KmMKCiAgICAgIC8qIElmIHRoZSBQRSBkb2Vzbid0IGhhdmUgYW4gaW1wb3J0IHRhYmxlIHRoZW4g
c2tpcCBpdC4gVGhpcyBpcyBhbgogICAgICAgKiB1bmNvbW1vbiBjYXNlIGJ1dCBjYW4gaGFwcGVu
LiAqLwotICAgIGlmIChwZWluZm8tPmRpcnNbMV0uVmlydHVhbEFkZHJlc3MgPT0gMCB8fCBwZWlu
Zm8tPmRpcnNbMV0uU2l6ZSA9PSAwKSB7CisgICAgaWYgKEVDMzIocGVpbmZvLT5kaXJzWzFdLlZp
cnR1YWxBZGRyZXNzKSA9PSAwIHx8IEVDMzIocGVpbmZvLT5kaXJzWzFdLlNpemUpID09IDApIHsK
ICAgICAgICAgIGNsaV9kYmdtc2coInNjYW5fcGU6IGltcG9ydCB0YWJsZSBkYXRhIGRpciBkb2Vz
IG5vdCBleGlzdCAoc2tpcHBpbmcgLmltcCBzY2FubmluZylcbiIpOwogICAgICAgICAgc3RhdHVz
ID0gQ0xfQlJFQUs7CiAgICAgICAgICBnb3RvIGRvbmU7CiAgICAgIH0KCi0gICAgLy8gVE9ETyBB
ZGQgRUMzMiB3cmFwcGVycwotICAgIGltcG9mZiA9IGNsaV9yYXdhZGRyKHBlaW5mby0+ZGlyc1sx
XS5WaXJ0dWFsQWRkcmVzcywgcGVpbmZvLT5zZWN0aW9ucywgcGVpbmZvLT5uc2VjdGlvbnMsICZl
cnIsIGZzaXplLCBwZWluZm8tPmhkcl9zaXplKTsKLSAgICBpZiAoZXJyIHx8IGltcG9mZiArIHBl
aW5mby0+ZGlyc1sxXS5TaXplID4gZnNpemUpIHsKKyAgICBpbXBvZmYgPSBjbGlfcmF3YWRkcihF
QzMyKHBlaW5mby0+ZGlyc1sxXS5WaXJ0dWFsQWRkcmVzcyksIHBlaW5mby0+c2VjdGlvbnMsIHBl
aW5mby0+bnNlY3Rpb25zLCAmZXJyLCBmc2l6ZSwgcGVpbmZvLT5oZHJfc2l6ZSk7CisgICAgaWYg
KGVyciB8fCBpbXBvZmYgKyBFQzMyKHBlaW5mby0+ZGlyc1sxXS5TaXplKSA+IGZzaXplKSB7CiAg
ICAgICAgICBjbGlfZGJnbXNnKCJzY2FuX3BlOiBpbnZhbGlkIHJ2YSBmb3IgaW1wb3J0IHRhYmxl
IGRhdGFcbiIpOwogICAgICAgICAgc3RhdHVzID0gQ0xfQlJFQUs7CiAgICAgICAgICBnb3RvIGRv
bmU7CiAgICAgIH0KCi0gICAgLy8gVE9ETyBBZGQgRUMzMiB3cmFwcGVyCi0gICAgaW1wZGVzID0g
KGNvbnN0IHN0cnVjdCBwZV9pbWFnZV9pbXBvcnRfZGVzY3JpcHRvciAqKWZtYXBfbmVlZF9vZmYo
bWFwLCBpbXBvZmYsIHBlaW5mby0+ZGlyc1sxXS5TaXplKTsKKyAgICBpbXBkZXMgPSAoY29uc3Qg
c3RydWN0IHBlX2ltYWdlX2ltcG9ydF9kZXNjcmlwdG9yICopZm1hcF9uZWVkX29mZihtYXAsIGlt
cG9mZiwgRUMzMihwZWluZm8tPmRpcnNbMV0uU2l6ZSkpOwogICAgICBpZiAoaW1wZGVzID09IE5V
TEwpIHsKICAgICAgICAgIGNsaV9kYmdtc2coInNjYW5fcGU6IGZhaWxlZCB0byBhY3F1aXJlIGZt
YXAgYnVmZmVyXG4iKTsKICAgICAgICAgIHN0YXR1cyA9IENMX0VSRUFEOwpAQCAtMjQ0Nyw3ICsy
NDQ1LDcgQEAgc3RhdGljIGNsX2Vycm9yX3QgaGFzaF9pbXB0YmwoY2xpX2N0eCAqYwoKICAgICAg
LyogU2FmZXR5OiBXZSBjYW4gdHJ1c3QgcGVpbmZvLT5kaXJzWzFdLlNpemUgb25seSBiZWNhdXNl
IGBmbWFwX25lZWRfb2ZmKClgIChhYm92ZSkKICAgICAgICogd291bGQgaGF2ZSBmYWlsZWQgaWYg
dGhlIHNpemUgZXhjZWVkcyB0aGUgZW5kIG9mIHRoZSBmbWFwLiAqLwotICAgIGxlZnQgPSBwZWlu
Zm8tPmRpcnNbMV0uU2l6ZTsKKyAgICBsZWZ0ID0gRUMzMihwZWluZm8tPmRpcnNbMV0uU2l6ZSk7
CgogICAgICBpZiAoZ2VuaGFzaFtDTElfSEFTSF9NRDVdKSB7CiAgICAgICAgICBoYXNoY3R4W0NM
SV9IQVNIX01ENV0gPSBjbF9oYXNoX2luaXQoIm1kNSIpOwpAQCAtMjU0Niw3ICsyNTQ0LDcgQEAg
c3RhdGljIGNsX2Vycm9yX3QgaGFzaF9pbXB0YmwoY2xpX2N0eCAqYwoKICBkb25lOgogICAgICBp
ZiAobmVlZGVkX2ltcG9mZikgewotICAgICAgICBmbWFwX3VubmVlZF9vZmYobWFwLCBpbXBvZmYs
IHBlaW5mby0+ZGlyc1sxXS5TaXplKTsKKyAgICAgICAgZm1hcF91bm5lZWRfb2ZmKG1hcCwgaW1w
b2ZmLCBFQzMyKHBlaW5mby0+ZGlyc1sxXS5TaXplKSk7CiAgICAgIH0KCiAgICAgIGZvciAodHlw
ZSA9IENMSV9IQVNIX01ENTsgdHlwZSA8IENMSV9IQVNIX0FWQUlMX1RZUEVTOyB0eXBlKyspIHsK
QEAgLTMxNzcsOCArMzE3NSw3IEBAIGludCBjbGlfc2NhbnBlKGNsaV9jdHggKmN0eCkKICAgICAg
fQoKICAgICAgLyogVzMyLlBvbGlwb3MuQSAqLwotICAgIC8vIFRPRE8gQWRkIGVuZGlhbm5lc3Mg
Y29ycmVjdGlvbiB0byBTaXplT2ZTdGFja1Jlc2VydmUgYWNjZXNzCi0gICAgd2hpbGUgKHBvbGlw
b3MgJiYgIXBlaW5mby0+aXNfZGxsICYmIHBlaW5mby0+bnNlY3Rpb25zID4gMiAmJiBwZWluZm8t
Pm5zZWN0aW9ucyA8IDEzICYmIHBlaW5mby0+ZV9sZmFuZXcgPD0gMHg4MDAgJiYgKEVDMTYocGVp
bmZvLT5wZV9vcHQub3B0MzIuU3Vic3lzdGVtKSA9PSAyIHx8IEVDMTYocGVpbmZvLT5wZV9vcHQu
b3B0MzIuU3Vic3lzdGVtKSA9PSAzKSAmJiBFQzE2KHBlaW5mby0+ZmlsZV9oZHIuTWFjaGluZSkg
PT0gMHgxNGMgJiYgcGVpbmZvLT5wZV9vcHQub3B0MzIuU2l6ZU9mU3RhY2tSZXNlcnZlID49IDB4
ODAwMDApIHsKKyAgICB3aGlsZSAocG9saXBvcyAmJiAhcGVpbmZvLT5pc19kbGwgJiYgcGVpbmZv
LT5uc2VjdGlvbnMgPiAyICYmIHBlaW5mby0+bnNlY3Rpb25zIDwgMTMgJiYgcGVpbmZvLT5lX2xm
YW5ldyA8PSAweDgwMCAmJiAoRUMxNihwZWluZm8tPnBlX29wdC5vcHQzMi5TdWJzeXN0ZW0pID09
IDIgfHwgRUMxNihwZWluZm8tPnBlX29wdC5vcHQzMi5TdWJzeXN0ZW0pID09IDMpICYmIEVDMTYo
cGVpbmZvLT5maWxlX2hkci5NYWNoaW5lKSA9PSAweDE0YyAmJiBFQzMyKHBlaW5mby0+cGVfb3B0
Lm9wdDMyLlNpemVPZlN0YWNrUmVzZXJ2ZSkgPj0gMHg4MDAwMCkgewogICAgICAgICAgdWludDMy
X3QganVtcCwgam9sZCwgKmp1bXBzID0gTlVMTDsKICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKmNv
ZGU7CiAgICAgICAgICB1bnNpZ25lZCBpbnQgeHNqcyA9IDA7CkBAIC0zMjUwLDcgKzMyNDcsNyBA
QCBpbnQgY2xpX3NjYW5wZShjbGlfY3R4ICpjdHgpCgogICAgICAvKiBUcm9qYW4uU3dpenpvci5H
ZW4gKi8KICAgICAgaWYgKFNDQU5fSEVVUklTVElDUyAmJiAoRENPTkYgJiBQRV9DT05GX1NXSVpa
T1IpICYmIHBlaW5mby0+bnNlY3Rpb25zID4gMSAmJiBmc2l6ZSA+IDY0ICogMTAyNCAmJiBmc2l6
ZSA8IDQgKiAxMDI0ICogMTAyNCkgewotICAgICAgICBpZiAocGVpbmZvLT5kaXJzWzJdLlNpemUp
IHsKKyAgICAgICAgaWYgKEVDMzIocGVpbmZvLT5kaXJzWzJdLlNpemUpKSB7CiAgICAgICAgICAg
ICAgc3RydWN0IHN3aXp6X3N0YXRzICpzdGF0cyA9IGNsaV9jYWxsb2MoMSwgc2l6ZW9mKCpzdGF0
cykpOwogICAgICAgICAgICAgIHVuc2lnbmVkIGludCBtICAgICAgICAgICAgPSAxMDAwOwogICAg
ICAgICAgICAgIHJldCAgICAgICAgICAgICAgICAgICAgICAgPSBDTF9DTEVBTjsKQEAgLTM5MDMs
OCArMzkwMCw3IEBAIGludCBjbGlfc2NhbnBlKGNsaV9jdHggKmN0eCkKICAgICAgICAgIGlmIChj
bGlfbWVtc3RyKFVQWF9MWk1BMiwgMjAsIGVwYnVmZiArIDB4MmYsIDIwKSkgewogICAgICAgICAg
ICAgIHVpbnQzMl90IHN0cmljdGRzaXplID0gY2xpX3JlYWRpbnQzMihlcGJ1ZmYgKyAweDIxKSwg
c2tldyA9IDA7CiAgICAgICAgICAgICAgaWYgKHNzaXplID4gMHgxNSAmJiBlcGJ1ZmZbMF0gPT0g
J1x4NjAnICYmIGVwYnVmZlsxXSA9PSAnXHhiZScpIHsKLSAgICAgICAgICAgICAgICAvLyBUT0RP
IEFkZCBFQzMyCi0gICAgICAgICAgICAgICAgc2tldyA9IGNsaV9yZWFkaW50MzIoZXBidWZmICsg
MikgLSBwZWluZm8tPnNlY3Rpb25zW2kgKyAxXS5ydmEgLSBwZWluZm8tPnBlX29wdC5vcHQzMi5J
bWFnZUJhc2U7CisgICAgICAgICAgICAgICAgc2tldyA9IGNsaV9yZWFkaW50MzIoZXBidWZmICsg
MikgLSBwZWluZm8tPnNlY3Rpb25zW2kgKyAxXS5ydmEgLSBFQzMyKHBlaW5mby0+cGVfb3B0Lm9w
dDMyLkltYWdlQmFzZSk7CiAgICAgICAgICAgICAgICAgIGlmIChza2V3ICE9IDB4MTUpCiAgICAg
ICAgICAgICAgICAgICAgICBza2V3ID0gMDsKICAgICAgICAgICAgICB9CkBAIC0zOTE1LDggKzM5
MTEsNyBAQCBpbnQgY2xpX3NjYW5wZShjbGlfY3R4ICpjdHgpCiAgICAgICAgICAgICAgdWludDMy
X3Qgc3RyaWN0ZHNpemUgPSBjbGlfcmVhZGludDMyKGVwYnVmZiArIDB4MmIpLCBza2V3ID0gMDsK
ICAgICAgICAgICAgICB1aW50MzJfdCBwcm9wZXJ0aWVzID0gY2xpX3JlYWRpbnQzMihlcGJ1ZmYg
KyAweDQxKTsKICAgICAgICAgICAgICBpZiAoc3NpemUgPiAweDE1ICYmIGVwYnVmZlswXSA9PSAn
XHg2MCcgJiYgZXBidWZmWzFdID09ICdceGJlJykgewotICAgICAgICAgICAgICAgIC8vIFRPRE8g
QWRkIEVDMzIKLSAgICAgICAgICAgICAgICBza2V3ID0gY2xpX3JlYWRpbnQzMihlcGJ1ZmYgKyAy
KSAtIHBlaW5mby0+c2VjdGlvbnNbaSArIDFdLnJ2YSAtIHBlaW5mby0+cGVfb3B0Lm9wdDMyLklt
YWdlQmFzZTsKKyAgICAgICAgICAgICAgICBza2V3ID0gY2xpX3JlYWRpbnQzMihlcGJ1ZmYgKyAy
KSAtIHBlaW5mby0+c2VjdGlvbnNbaSArIDFdLnJ2YSAtIEVDMzIocGVpbmZvLT5wZV9vcHQub3B0
MzIuSW1hZ2VCYXNlKTsKICAgICAgICAgICAgICAgICAgaWYgKHNrZXcgIT0gMHgxNSkKICAgICAg
ICAgICAgICAgICAgICAgIHNrZXcgPSAwOwogICAgICAgICAgICAgIH0KQEAgLTUwOTcsNyArNTA5
Miw3IEBAIGNsX2Vycm9yX3QgY2xpX3BlaGVhZGVyKGZtYXBfdCAqbWFwLCBzdHIKCiAgICAgIGZv
ciAoaSA9IDA7IGZhbGlnbiAhPSAweDIwMCAmJiBpIDwgKHNpemVfdClwZWluZm8tPm5zZWN0aW9u
czsgaSsrKSB7CiAgICAgICAgICAvKiBmaWxlIGFsaWdubWVudCBmYWxsYmFjayBtb2RlIC0gYmxh
aCAqLwotICAgICAgICBpZiAoZmFsaWduICYmIHNlY3Rpb25faGRyc1tpXS5TaXplT2ZSYXdEYXRh
ICYmIEVDMzIoc2VjdGlvbl9oZHJzW2ldLlBvaW50ZXJUb1Jhd0RhdGEpICUgZmFsaWduICYmICEo
RUMzMihzZWN0aW9uX2hkcnNbaV0uUG9pbnRlclRvUmF3RGF0YSkgJSAweDIwMCkpIHsKKyAgICAg
ICAgaWYgKGZhbGlnbiAmJiBFQzMyKHNlY3Rpb25faGRyc1tpXS5TaXplT2ZSYXdEYXRhKSAmJiBF
QzMyKHNlY3Rpb25faGRyc1tpXS5Qb2ludGVyVG9SYXdEYXRhKSAlIGZhbGlnbiAmJiAhKEVDMzIo
c2VjdGlvbl9oZHJzW2ldLlBvaW50ZXJUb1Jhd0RhdGEpICUgMHgyMDApKSB7CiAgICAgICAgICAg
ICAgY2xpX2RiZ21zZygiY2xpX3BlaGVhZGVyOiBFbmNvdW50ZXJlZCBzZWN0aW9uIHdpdGggdW5l
eHBlY3RlZCBhbGlnbm1lbnQgLSB0cmlnZ2VyaW5nIGZhbGxiYWNrIG1vZGVcbiIpOwogICAgICAg
ICAgICAgIGZhbGlnbiA9IDB4MjAwOwogICAgICAgICAgfQpAQCAtNTI5MiwxMyArNTI4NywxMyBA
QCBjbF9lcnJvcl90IGNsaV9wZWhlYWRlcihmbWFwX3QgKm1hcCwgc3RyCiAgICAgICAgICBjbGlf
ZGJnbXNnKCJFbnRyeVBvaW50IG9mZnNldDogMHgleCAoJWQpXG4iLCBwZWluZm8tPmVwLCBwZWlu
Zm8tPmVwKTsKICAgICAgfQoKLSAgICBpZiAoaXNfZGxsIHx8IHBlaW5mby0+bmRhdGFkaXJzIDwg
MyB8fCAhcGVpbmZvLT5kaXJzWzJdLlNpemUpCisgICAgaWYgKGlzX2RsbCB8fCBwZWluZm8tPm5k
YXRhZGlycyA8IDMgfHwgIUVDMzIocGVpbmZvLT5kaXJzWzJdLlNpemUpKQogICAgICAgICAgcGVp
bmZvLT5yZXNfYWRkciA9IDA7CiAgICAgIGVsc2UKICAgICAgICAgIHBlaW5mby0+cmVzX2FkZHIg
PSBFQzMyKHBlaW5mby0+ZGlyc1syXS5WaXJ0dWFsQWRkcmVzcyk7CgogICAgICB3aGlsZSAob3B0
cyAmIENMSV9QRUhFQURFUl9PUFRfRVhUUkFDVF9WSU5GTyAmJgotICAgICAgICAgICBwZWluZm8t
Pm5kYXRhZGlycyA+PSAzICYmIHBlaW5mby0+ZGlyc1syXS5TaXplKSB7CisgICAgICAgICAgIHBl
aW5mby0+bmRhdGFkaXJzID49IDMgJiYgRUMzMihwZWluZm8tPmRpcnNbMl0uU2l6ZSkpIHsKICAg
ICAgICAgIHN0cnVjdCB2aW5mb19saXN0IHZsaXN0OwogICAgICAgICAgY29uc3QgdWludDhfdCAq
dnB0ciwgKmJhc2VwdHI7CiAgICAgICAgICB1aW50MzJfdCBydmEsIHJlc19zejsKCgotLSAKU1VT
RSBTb2Z0d2FyZSBTb2x1dGlvbnMgR2VybWFueSBHbWJIIChIUkIgMzY4MDksIEFHIE7DvHJuYmVy
ZykKR0Y6IEl2byBUb3RldiwgQW5kcmV3IE15ZXJzLCBBbmRyZXcgTWNEb25hbGQsIE1hcnRqZSBC
b3VkaWVuIE1vZXJtYW4KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KCmNsYW1hdi1kZXZlbCBtYWlsaW5nIGxpc3QKY2xhbWF2LWRldmVsQGxpc3RzLmNsYW1h
di5uZXQKaHR0cHM6Ly9saXN0cy5jbGFtYXYubmV0L21haWxtYW4vbGlzdGluZm8vY2xhbWF2LWRl
dmVsCgpQbGVhc2Ugc3VibWl0IHlvdXIgcGF0Y2hlcyB0byBvdXIgR2l0aHViOiBodHRwczovL2dp
dGh1Yi5jb20vQ2lzY28tVGFsb3MvY2xhbWF2LWRldmVsL3B1bGxzCgpIZWxwIHVzIGJ1aWxkIGEg
Y29tcHJlaGVuc2l2ZSBDbGFtQVYgZ3VpZGU6Cmh0dHBzOi8vZ2l0aHViLmNvbS92cnRhZG1pbi9j
bGFtYXYtZmFxCgpodHRwOi8vd3d3LmNsYW1hdi5uZXQvY29udGFjdC5odG1sI21sCg==