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==