From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 86178 invoked by alias); 21 Nov 2019 22:19:52 -0000 Mailing-List: contact bzip2-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: List-Id: Sender: bzip2-devel-owner@sourceware.org Received: (qmail 86166 invoked by uid 89); 21 Nov 2019 22:19:52 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.100.3 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-0.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,KAM_ASCII_DIVIDERS,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 spammy=H*c:NHxtPHrt, HX-Languages-Length:1453, MIT, H*c:HHH X-Spam-Status: No, score=-0.4 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,KAM_ASCII_DIVIDERS,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on sourceware.org X-Spam-Level: X-HELO: llmx3.ll.mit.edu From: "Zorn, Nicholas - 0991 - MITLL" To: "bzip2-devel@sourceware.org" Subject: libbzip2 - BZ2_bzBuffToBuffDecompress issue Thread-Topic: libbzip2 - BZ2_bzBuffToBuffDecompress issue Thread-Index: AdWfyEDojVC9RR+XQmC1RkJAaInS8AA8OA6Q Date: Tue, 01 Jan 2019 00:00:00 -0000 Message-ID: <3f270c7a78e745948191a9e367c78b93@ll.mit.edu> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [172.25.1.90] Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=SHA1; boundary="----=_NextPart_000_06EA_01D5A08F.DE943500" MIME-Version: 1.0 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-11-21_06:,, signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 spamscore=0 mlxscore=0 mlxlogscore=958 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1911140001 definitions=main-1911210186 X-SW-Source: 2019-q4/txt/msg00002.txt.bz2 ------=_NextPart_000_06EA_01D5A08F.DE943500 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-length: 1497 Hello bzip2 developers, I believe I found a potential issue inside the convenience function BZ_API(BZ2_bzBuffToBuffDecompress). If the size of the buffer allocated to receive the decompressed data is bigger than the uncompressed data (which is completely normal/expected, given you likely do not know how big the decompressed data will be), one can never receive BZ_OK as a return value =96 one will only ever get BZ_UNEXPECTED_EOF. But more importantly, the destLen value will not be updated, making the returned data essentially unusable. So I made some minor modifications to the code (starting at line 1337 in bzlib.c), commented below. I have been using it continuously and without error inside an application for over a year. =A0=A0 output_overflow_or_eof: =A0=A0 if (strm.avail_out > 0) { *destLen -=3D strm.avail_out; // NVZ added this line 08 Nov 2018 BZ2_bzDecompressEnd ( &strm ); return BZ_OK; // NVZ changed this return value from BZ_UNEXPECTED_EOF on 08 Nov 2018 =A0=A0 } else { =A0=A0=A0=A0=A0 BZ2_bzDecompressEnd ( &strm ); =A0=A0=A0=A0=A0 return BZ_OUTBUFF_FULL; =A0=A0 }; Feel free to ignore or shut this down. Otherwise, I hope I may have been able to identify an area for potential improvement in a great library. It= =92s also nice to see people picking up the torch and continuing to support it. Thank you. ------------------------------------------- Nick V. Zorn Technical Staff MIT Lincoln Laboratory ------------------------------------------- ------=_NextPart_000_06EA_01D5A08F.DE943500 Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-length: 10383 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 ku0Yt+mh8VWRKux2CcYjMpk+WDV0BMp75tqb6pqBFkcKvEBXqxg+8+G/umji i4H0c5kvJhaQyykbmOKmxO9IcJIwggS8MIIDpKADAgECAgEpMA0GCSqGSIb3 DQEBBQUAMFQxCzAJBgNVBAYTAlVTMR8wHQYDVQQKExZNSVQgTGluY29sbiBM YWJvcmF0b3J5MQwwCgYDVQQLEwNQS0kxFjAUBgNVBAMTDU1JVExMIFJvb3Qg Q0EwHhcNMTMxMjE3MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjBRMQswCQYDVQQG EwJVUzEfMB0GA1UEChMWTUlUIExpbmNvbG4gTGFib3JhdG9yeTEMMAoGA1UE CxMDUEtJMRMwEQYDVQQDEwpNSVRMTCBDQS0zMIIBIjANBgkqhkiG9w0BAQEF AAOCAQ8AMIIBCgKCAQEA2jBSdW18tuW1tNxG6h8B0kqckFZQAAtoHCkvUpUE X6jFvBd8mQI53GyLYRuAo4HWJpe7/izFXOfSJDs6UM5ovvCOfXg2bJgDYlBC 9JDcLBFIn0nppOu9RvpjWSixtC56crwJ5Us5QPdtxtKdek5LJXl2oKw3w8li hUixePbxWad1m7ZMKKagvm9zTybP6FumKRxeYJjSpB2+cAYjoGGEbSVHyx8u zHm6xAoBMHxa8by+yDz8Jzk6sP9iilgP3iXSGoCAmhyBzvlQQ5QNNWP+Emo9 jz/ukKhYVB/VwdxtoquPAqn4ifDAIaM9dtb05cy1gXAFSP3Z/iUkxyBZZUOR fwIDAQABo4IBmjCCAZYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4EFgQU 12BmDntJjXVMDf3PRt7IxxKHyr8wHwYDVR0jBBgwFoAUZ6p6z/QKprlytYqg 0p3yEMND7SkwDgYDVR0PAQH/BAQDAgGGMGYGCCsGAQUFBwEBBFowWDAtBggr BgEFBQcwAoYhaHR0cDovL2NybC5sbC5taXQuZWR1L2dldHRvP0xMUkNBMCcG CCsGAQUFBzABhhtodHRwOi8vb2NzcC5sbC5taXQuZWR1L29jc3AwMwYDVR0f BCwwKjAooCagJIYiaHR0cDovL2NybC5sbC5taXQuZWR1L2dldGNybD9MTFJD QTCBkgYDVR0gBIGKMIGHMA0GCyqGSIb3EgIBAwEGMA0GCyqGSIb3EgIBAwEI MA0GCyqGSIb3EgIBAwEHMA0GCyqGSIb3EgIBAwEJMA0GCyqGSIb3EgIBAwEK MA0GCyqGSIb3EgIBAwELMA0GCyqGSIb3EgIBAwEOMA0GCyqGSIb3EgIBAwEP MA0GCyqGSIb3EgIBAwEQMA0GCSqGSIb3DQEBBQUAA4IBAQAsf9HBn72qU7UT gkxarjAc7iynhcDEgWwezYKtd/SLGSQ0DhtzIV/LTCxqULjOd+H+HTqMJXB8 +nHnzhyqQ43RsnGZOFT5RfzPh94db/ZJ3ql244DwlJI7yXBA2DkZcEEgOWC9 bHcrElzU6NnigahSW5odVJrhmH/XhQAcMS77E5H62yyxK1WPPgcBipGVnu1x SHbTiHe7DqfWQ2tVMLUf23XYhIua94kJsQd4jSh71NVD0e7F4snAoqQMI98M zDYeLOkjlzKRs77r/aMsPAKx6nMaOvRL7Cy0Pjp51i2qFkbGmX8ofnh2kerj TTvRJ/g22r1MV8RR1PktjMsNOsPfMIIEwDCCA6igAwIBAgIBBjANBgkqhkiG 9w0BAQsFADBWMQswCQYDVQQGEwJVUzEfMB0GA1UEChMWTUlUIExpbmNvbG4g TGFib3JhdG9yeTEMMAoGA1UECxMDUEtJMRgwFgYDVQQDEw9NSVRMTCBSb290 IENBLTIwHhcNMTcwMzAyMTIwMDAwWhcNMjYwMzAyMjM1OTU5WjBRMQswCQYD VQQGEwJVUzEfMB0GA1UECgwWTUlUIExpbmNvbG4gTGFib3JhdG9yeTEMMAoG A1UECwwDUEtJMRMwEQYDVQQDDApNSVRMTCBDQS01MIIBIjANBgkqhkiG9w0B AQEFAAOCAQ8AMIIBCgKCAQEAp5qDDr05H8O56tfZq1msxmmvkPN1L9PgE109 6upK/lhMSDCGfOwu+FgnEV6bzu7r8ex7zLGFgBR1vd8EMIY8rcRyDmYCjSeF ZxlQ1JfiiO4NJ/fmY7d4Qdx4R23L23vfmOI8/l8woi5djmmLyAim8b2wUgi7 TxHmUOsek2+hCtMptIL2Hhzt5LrmPkiRyTJbW6y5yFS8Y2azVUu+81yr7ukN 4UnZESAe5CYBF3y/qf8/9qfeGxBGdk50M9E5Doxviau1JV5RUbb7GHAzxEA9 1DZGbFnF4AtYVxvExpJ1HAIZRsVYZSpRS5jXe9+NrHhstrPWMTQ50hPnl07W 9COSywIDAQABo4IBnDCCAZgwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNVHQ4E FgQUL++7xg0du+lq/qxn8wc7CHb2S1kwHwYDVR0jBBgwFoAU/8nJZUxTgPGp DDwhroIqx+74MvswDgYDVR0PAQH/BAQDAgGGMGcGCCsGAQUFBwEBBFswWTAu BggrBgEFBQcwAoYiaHR0cDovL2NybC5sbC5taXQuZWR1L2dldHRvL0xMUkNB MjAnBggrBgEFBQcwAYYbaHR0cDovL29jc3AubGwubWl0LmVkdS9vY3NwMDQG A1UdHwQtMCswKaAnoCWGI2h0dHA6Ly9jcmwubGwubWl0LmVkdS9nZXRjcmwv TExSQ0EyMIGSBgNVHSAEgYowgYcwDQYLKoZIhvcSAgEDAQYwDQYLKoZIhvcS AgEDAQgwDQYLKoZIhvcSAgEDAQcwDQYLKoZIhvcSAgEDAQkwDQYLKoZIhvcS AgEDAQowDQYLKoZIhvcSAgEDAQswDQYLKoZIhvcSAgEDAQ4wDQYLKoZIhvcS AgEDAQ8wDQYLKoZIhvcSAgEDARAwDQYJKoZIhvcNAQELBQADggEBADCWEcCz yfdSu3tpgNjY9dFtKOSTB2JGmvnLS/P8WPEMyBxSOSI/osnaTzfSgmJ/+Esv NE92jaGJBZUtBkUF4X9J7ImO01icACsOAIjv8id+/6ESkYLckYnL2iekY5Rw lwTmpRS8PVLaaHT+P4nQudZcc7KJWkGa2gY1Xuzy/eT4Uuw/ttjX3yJ8y3SG 9QwX+eDcDlXzyIAAbcR9X4Wa42uxIUfUaFMORNTuolmgLj/8VoUk0BVpYcgN P5JCIvfx12mNIWJ4XI3Gzz6o6cnyIUhY414Y6iu7dsD60qwRSxVG5y4jZYEB 67zWBeSKoCH50gViK5t63y4aWWSf8Se2H+gwggTsMIID1KADAgECAgoTcsRZ AAAAAM+bMA0GCSqGSIb3DQEBCwUAMFExCzAJBgNVBAYTAlVTMR8wHQYDVQQK ExZNSVQgTGluY29sbiBMYWJvcmF0b3J5MQwwCgYDVQQLEwNQS0kxEzARBgNV BAMTCk1JVExMIENBLTMwHhcNMTcwODEwMTIwOTM3WhcNMjAwODA5MTIwOTM3 WjBiMQswCQYDVQQGEwJVUzEfMB0GA1UEChMWTUlUIExpbmNvbG4gTGFib3Jh dG9yeTEPMA0GA1UECxMGUGVvcGxlMSEwHwYDVQQDExhab3JuLk5pY2hvbGFz LlYuNTAwMDgxNzcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDc Ylxj6xE6vd9heQLj7WMyN6x6jgrs22xp3mXwXAKQvdXhK/qHs964d3yFhGDC emGuO8ea+LODcFki6Xjn6CC8plL9GZ62NjXRxAUy8w+dYaHC6RJbv4MldpdT rtQJXleiTgzvYqDNMShW2u7nXLE0UFGwtHjSl77w6KXlG81Z7+CLVh0LGs/X XisbCg0Oe5AhCC2M2SbAhcPv2QNlm4jkfDg34N6kn+KGT4Ly41N3XfSFtV9U r/kfAICN+d2D1cVnUotidCvQJIOWyvPwfHblLQLQvUNGAhPThmCxP+55m1tI TOjws5T5DgbV7Xnyh2BBLxdY+LcVN/tKFaM+lJpbAgMBAAGjggGzMIIBrzAd BgNVHQ4EFgQUzRT2tWJQaWqpQmo7fyATQeg8BKMwDgYDVR0PAQH/BAQDAgbA MB8GA1UdIwQYMBaAFNdgZg57SY11TA39z0beyMcSh8q/MDMGA1UdHwQsMCow KKAmoCSGImh0dHA6Ly9jcmwubGwubWl0LmVkdS9nZXRjcmwvTExDQTMwZgYI KwYBBQUHAQEEWjBYMC0GCCsGAQUFBzAChiFodHRwOi8vY3JsLmxsLm1pdC5l ZHUvZ2V0dG8vTExDQTMwJwYIKwYBBQUHMAGGG2h0dHA6Ly9vY3NwLmxsLm1p dC5lZHUvb2NzcDA9BgkrBgEEAYI3FQcEMDAuBiYrBgEEAYI3FQiDg+Udh+yn ZoathxWD6vBFhbahHx2Fy94yh/+KcwIBZAIBCDAiBgNVHSUBAf8EGDAWBggr BgEFBQcDBAYKKwYBBAGCNwoDDDAYBgNVHSAEETAPMA0GCyqGSIb3EgIBAwEI MBoGA1UdEQQTMBGBD3pvcm5AbGwubWl0LmVkdTAnBgkrBgEEAYI3FAIEGh4Y AEwATABVAHMAZQByAFMAaQBnAC0AUwBXMA0GCSqGSIb3DQEBCwUAA4IBAQCR PXqHnXBBZAYb3kUrPYtmwXa2u4/XLbNOdd2p+71Y8Q2GiUs7E25lpR7v1MxX QI2R93AP7yjjZePxC8H6LLajYQAQOENnsvirIOsEZzNcdBrV0dLGdRDYOwoO 8wwKVEbz8d5m3n71NiQ5VYihfxb2NszOpEPXmt3Kn92odgLDU0Hkemski7Ie 5r+1z45a9aCh8VmxJ9WMjmFh+h+tnBKk78/wS3Ov0ts3Vq4uGcgJ6zY1iw6F ZSN+6/d8i02KPGmz/fUQIbhGiBbeN6BLKPXLcr58vXcj1MmCZWgPpAfH9eCK 39BLoXosP9oxBOCKc6Ctz/z5byNOrbbGdGnONfZfMIIE+DCCA+CgAwIBAgIT WQAAOp5MKBaObz70EwAAAAA6njANBgkqhkiG9w0BAQsFADBRMQswCQYDVQQG EwJVUzEfMB0GA1UECgwWTUlUIExpbmNvbG4gTGFib3JhdG9yeTEMMAoGA1UE CwwDUEtJMRMwEQYDVQQDDApNSVRMTCBDQS01MB4XDTE4MDgyNzE0NDMxMloX DTIxMDgyNjE0NDMxMlowYjELMAkGA1UEBhMCVVMxHzAdBgNVBAoTFk1JVCBM aW5jb2xuIExhYm9yYXRvcnkxDzANBgNVBAsTBlBlb3BsZTEhMB8GA1UEAxMY Wm9ybi5OaWNob2xhcy5WLjUwMDA4MTc3MIIBIjANBgkqhkiG9w0BAQEFAAOC AQ8AMIIBCgKCAQEAyFXLReZ4OKon7PVnOot05fa8K8qxxcszuLXwtFZA+6dB cOWPJQMKUPkP5qCO2P8qKY+yXsztb3caDHoH1bOYtSvtIKWBNzMpUF3/ZT+4 q9SS3JoKaq/TjqkeuD48iZRfk8qbR8krrV0OfmVH0kvAAZntjcQtFR8zstm/ mLgCnOayu3K7b6NOzi11J9hYSFDKqZ7PS2zv/gvF+QMZAQ5IV2KlCgFUA/SU X5oEup+gnGrvx7Oxq7m5vx/3BG4W4TniCxfeuDKrq7QGbNyLU0xGuNzMHFy5 XcmbX1Y5nfGQfSwIYk7+gmTFtBQvtUqT4pHn38SBCZMeyIFEIfiykDGMwwID AQABo4IBtjCCAbIwHQYDVR0OBBYEFMFAwldI2hCawJFwb09UBxpTky5kMA4G A1UdDwEB/wQEAwIFIDAfBgNVHSMEGDAWgBQv77vGDR276Wr+rGfzBzsIdvZL WTAzBgNVHR8ELDAqMCigJqAkhiJodHRwOi8vY3JsLmxsLm1pdC5lZHUvZ2V0 Y3JsL2xsY2E1MGYGCCsGAQUFBwEBBFowWDAtBggrBgEFBQcwAoYhaHR0cDov L2NybC5sbC5taXQuZWR1L2dldHRvL2xsY2E1MCcGCCsGAQUFBzABhhtodHRw Oi8vb2NzcC5sbC5taXQuZWR1L29jc3AwPQYJKwYBBAGCNxUHBDAwLgYmKwYB BAGCNxUIg4PlHYfsp2aGrYcVg+rwRYW2oR8dhevQcIPr7SACAWQCAQkwJQYD VR0lBB4wHAYEVR0lAAYIKwYBBQUHAwQGCisGAQQBgjcKAwQwGgYDVR0RBBMw EYEPem9ybkBsbC5taXQuZWR1MBgGA1UdIAQRMA8wDQYLKoZIhvcSAgEDAQgw JwYJKwYBBAGCNxQCBBoeGABMAEwAVQBzAGUAcgBFAG4AYwAtAFMAVzANBgkq hkiG9w0BAQsFAAOCAQEAOr8hJC4c+M/dFniib+Lwa+WNWY0xdhCRPZlOS1OQ fCxz9F7wt8288szgFe4cMmCI/+BJQN33RdSxOYtHpdnCHlhCaJE1ROZ3XX7L B0kWpJlC5oeGh/3I9iZbs9TquaR4EIcZteNn9IOaMcWK2lJp4S0f7n4gafqv aYXPkmZ9OVrdlm6HHYNWo90IpaBFoK6t7+mis9LZ9fco1z0i8GJkhzCMBi6m EqPbbwb5hrb7OAyvB0Z2g8Pa+6Viw53aBP1IZonIguVgmgsQccXSNRDJedtr dw02sM2CGz8nun3WBvPxiphqzIM7oMcRTGpFuJJamzXxfpBjyZm0UtBrB4OZ hzGCAygwggMkAgEBMF8wUTELMAkGA1UEBhMCVVMxHzAdBgNVBAoTFk1JVCBM aW5jb2xuIExhYm9yYXRvcnkxDDAKBgNVBAsTA1BLSTETMBEGA1UEAxMKTUlU TEwgQ0EtMwIKE3LEWQAAAADPmzAJBgUrDgMCGgUAoIIBnjAYBgkqhkiG9w0B CQMxCwYJKoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0xOTExMjEyMjE5NDVa MCMGCSqGSIb3DQEJBDEWBBSfx/RTc7CDnK1G8KJChVFs/+SPnDBLBgkqhkiG 9w0BCQ8xPjA8MAoGCCqGSIb3DQMHMAcGBSsOAwIaMAsGCWCGSAFlAwQCAzAL BglghkgBZQMEAgIwCwYJYIZIAWUDBAIBMHcGCSsGAQQBgjcQBDFqMGgwUTEL MAkGA1UEBhMCVVMxHzAdBgNVBAoMFk1JVCBMaW5jb2xuIExhYm9yYXRvcnkx DDAKBgNVBAsMA1BLSTETMBEGA1UEAwwKTUlUTEwgQ0EtNQITWQAAOp5MKBaO bz70EwAAAAA6njB5BgsqhkiG9w0BCRACCzFqoGgwUTELMAkGA1UEBhMCVVMx HzAdBgNVBAoMFk1JVCBMaW5jb2xuIExhYm9yYXRvcnkxDDAKBgNVBAsMA1BL STETMBEGA1UEAwwKTUlUTEwgQ0EtNQITWQAAOp5MKBaObz70EwAAAAA6njAN BgkqhkiG9w0BAQEFAASCAQBYdC+oHHqofsYQIfNcXFdPEukCDN7NmiVp0kVa wMGKLk+TpeWt18N4ZtZ0gIntp6bsUGQL/BtLD92mCGuzrPCiHFZH5BPPPfMQ kLxEKlf05PtDx2FKWzyofgksvd80T4bEAj1tw201+SGD4dRakhowXYoZlLXl A98DKulq/DiNe3XQTh8bQtZzo43QnygEdzrVbVGfvq2lr0VbLeZ9zsfH5xb+ 0ltnwWV480XyJp2Rd5Ks7d82A/x0oOKCHK3ZrPxofqP6m2091x71UFKl8gUt K62p+JhqcHXOINXWzG8Ky4Sqg6T7iY1Cv/Yz337mtmHqq9dBrynQHZgB3CNi Zz8EAAAAAAAA ------=_NextPart_000_06EA_01D5A08F.DE943500--