101arrowz / fflate

High performance (de)compression in an 8kB package
https://101arrowz.github.io/fflate
MIT License
2.21k stars 77 forks source link

Streaming unzip bug #148

Closed DavideMacchia closed 1 year ago

DavideMacchia commented 1 year ago

How to reproduce I'm using this code to stream and unzip the file, it works very well but it doesn't with a particular file that doesn't seems corruputed (sent it at this email address: arjunbarrett@gmail.com).

import {Unzip, UnzipFile} from "fflate";
import {ReadableStream} from "node:stream/web";

async function startStream(readableStream: ReadableStream) {
    const unzipStream: Unzip = new Unzip((file: UnzipFile) => {
        console.log(file);
    });
    const reader = readableStream.getReader();
    for (let finished = false; !finished;) {
        const {done, value} = await reader.read();
        if (value) {
            unzipStream.push(value);
        }
        finished = done;
    }

}

async function initReadableStream(pathToZip: string) {
    const fs = require('fs');
    const path = require('path');
    const readStream = fs.createReadStream(path.join(__dirname, pathToZip));
    const readableStream = new ReadableStream({
        async start(controller) {
            readStream.on("data", (chunk: Buffer | string) => {
                controller.enqueue(chunk);
            });
            readStream.on("end", () => controller.close());
            readStream.on("error", () => controller.error());
        }
    });
    await startStream(readableStream);
}

initReadableStream('../error_video.zip');

The problem Here below the output returned by the console.log in the code:

{
  name: 'VID_20220723_205234.mp4',
  compression: 8,
  start: [Function: start],
  terminate: [Function: terminate]
}
{
  name: 'V£e\n' +
    '\x83y?Azv\x9B\x0F\x19®\x9C\x06ªÕ"|Móüß\t!¥\x16\x91¬\x0EÇ´Þ°q^_öC"Ì\x9AñþCø;\x1D¬þØyï¼5\x9DÖoq\x16æ÷>\x15âKçdHöµ\x14w"÷\x023åa}\x9D\x02â´ÿØÿVð\x1EÒÀwÍ\x8CªUàö\x83rÕðx^O\x89¬\x80\x9F¢2\x86\x84\x99q\x8Dæ®ÓWöiï4\n' +
    'ÛL`ì\x8B\'3\x17:ZÔ\x1F\x81`úÞâjéR\x90(è\x1F$:|îêÎ\x15\x0F¼Æl¦¾="hìo\x1F\x89L_òïðÈ)&¸\x84Ãê69r¶D\t\x16r\x1B³7\x07¡)\x06Ê\x9FE\x13\x14UIËáXßÎH8lØñ\'\x85¬¹\x18\f\büÚS¬¯\x9EZi6\x0Fyì\x8CN9\x16\x14\x90ÏOÔ\rt\\\x81IN8\x82ªn\x9Er@\x95\x8Düº×®Ð^Â\x0BïCº,\x1A\x7F\x9C×\x1BvþD¦\x05%Áâ?ð"lë§\'eù\x94·<G$+1\x91ÂN\x0F]F§iø\b\x9EU\x16\n' +
    'A£\x8DK°\x86\x05\x07$¥K0\x013ÓÐ\x8C\x97\x92á\x19Hwô/õ\x96²\x9D\x03\x1Dß·®¡0\r\x0796\x12¨8nmÿ.pÓ~"{qG\x91°>\x9B8Ô\x02Û5o\fÜ\x87¡¸¶rØ\x15\x85ò\x9A6"iÔ\x81IÖ«{$²RÃq\x11\x81pùÿûç^\x10\x0B¾Èqi6\x17n\x16ü\x84%JÕm\x95ò\x87\x04\x05¼&â\x0Bª\x89êíx\x95Ës»\x16iä\x01\r\x1B~­j$ÆKÈåñÄ>Ë)\x8E¸eÓhâ\b¥SôjïäóC³f¡\x1E\x94àø\x07¡\x87ï\x88[\x1BôW7\x01PC\x1C\x9EE\x91P/Þ\x0FV\x8FjaX*8XÁôw\x9A\x90§· b"÷ì(û3fŹ\x0B$\x86\x94\x1B|ÒÓYk\x06Ìlw\x99ìòf\x82É[¦ý\x12nZÏ;\x18ÖDd±Ü\x05HRê-½\x8Bm\x7FYPmrO¼3ÕF \x1A\x84¡¿¥N\x02­\x1F\x87Þ¢<\x99ɧ\x0E·u×î\x8E\x1E;kÍ-¾»£K\x92\x1A~×Áhfÿ\x9CMp6åÀ\x17ÖÚ\x9ATmAó±â[W64\x01¦\n' +
    'Ô¸PÉcúDßï\x83þnÖ\x11»ï6\x05ÛK\x1FÂ4\x9C&Þ\r6ôJ­ù\x17_ _¥Áhµ£\x99ݽ\x1E ;\rÃ$Z\x17¦gvU=ÙoP¢\x96\x88\fA4ä.sQ_uÉLQMöÑÃUw²^Hû,ª­K\x13\x1DO\b\x8C\x1E\x9A_z¶Á\x9C¥Y\x88ñd8f¬\x9Aö§\x82ÒÁ\n' +
    '\x05bÓ~ù\x10e\x9Eæ·\x1E¤¢\x04Ý\\\x06Ø1\x8C\x80ÇQ\x12IK_í¢ù\x93\x02°E{f¹\x0B\x99\x05l\x00\x1F\x9E\x9E\x05X8¬·Àh~kF\f\x14N\t\x98C_$\x03A/Ö§\x16\x8EL\x9Fů£\x18l©Ü5T³SVw\x86\x80PS\t\x0Eþ\x1A\x0E\x02\x95£ãÂ\x84\x87\x1CrvgÒ\x0F²³ôÁ½2lÆ\x80Ý!×÷\x1E\x9CM£Ö9¤\x11D\x00ú*¨ìÀóÕ\x96âG}\f{\x9C\feìn¼hÉ\x86ÄPU²[Ýê\x1ER\x8Eîò\x1C\b+)¥¥P\x97ÄD§WTR\x7FÝ\x82¥bøæ\x8A\n' +
    '©Ë\rJ/ë·\x9Aé\x84 {ÔÍ%Ã\x84®\x8E\x07\x91áñ\x0Bh¥\x02lü|\x9Aôñ°\x14\x14\x16\x02ñÜ:»n\bì\x02®i\x7F\t<Õ]Ý|©ä]ÍÓ`²\x9F|\x05ðó\x9A\x91ÛÎe\x9BÕ\x7F\x8BÍ(\x02Ã{\x16\x90\x19\x8Eñó\x18i\x16 ç>Y L\x1D¹\x11ÊÈóàA\x89\x10÷)\x04q\x88\x1Cïo¹\x8C]\x045Éõ\x16\x95Éâ´«òÊ\x9FÒ±BöÅx°VØ&\bwì\x82rÎ*)c¢\x19Õ®¡\x9ENÌø\x11\x94j\n' +
    'ìÆ$³¶n7\x1EdÁ*ïw1Q\x83\x96|pUÿ\x86\x93Ë)¹\x1B\r\x17·ý\x9E\x91\x16\x10$\x03\x18ÆD-ý\x01­®­Ê\\O#A\x99k\x80Mëå©:ä\x82\x81=ãa\x13TjÙfû-*êÌ\x10Ĩ\x1Eô·;´©·I\x92\x10GÝ8º»n\x92<åî4\x07\x15\x14\x18\x89½\x9BmX(Ⱥ2\x8EÇå½-A\x01t[O\x1D\x86\x06@¤F`1D°ç°ô.WC\x8F5\x05~²g\x90|ï\x19\x88­\rå¿~êñ\x1C(\x13\x84s\x92½OyïP\x1Câ,ô,yá\r\x84e\x80v*û\x80´ÃmzT,3?È\x97)WÛ¿\x1F½\x9A\x1F\x8Bõ=½®±ÀÊñì\x8A\x06-_\x1E¨\x99¼ sUZëàô\x05^Ä­Ó|3ÖP\x03//âç\x86\x04\x879Ôa\x8CùÊN­O:Pþ\x82e­"2G\x0Bµv4Ã=\x1A\x15öîè\x13M÷KÕW\x9E\x96B\x11ÄÖp¤\x1C8+ð\x82L\x80\x9D\t­Ù_\n' +
    'Àª³¦Ý\x8Ec\x17§ºZí\x16\x9Bò\x98XIF(£\x95\x0Eå_Ó@\x1E<)û}·»6D=]ý(ÜÅ\x1A¨\x9AÄT\x11\x9D\x8Dâ3à~Ñ\t*¯Ú?[>\x16Æ{G&\x10·³Ö9¸ìk\x18»Õ\x9AÚ\n' +
    `\x9B\x9A½YÅ!=zWÄF#ÄÝù\x7Fnx\x13'n\x85¾e_¡\fæ?\x7Fi\f7/K©¶imÀM\x92C\x9F\x14^M\x1FË\x8Be<ssèD¶FE\x17\x93w=\x99ú\x06\x98Ï*\x84³!\\ ÿbò\x17\x9D\x94a&"Ç5v\x82Î6ç\x9C°ÐÀpå\n` +
    '¯K\x0EBi\\Ç­jH\r]öRЫ5þB\x86ê¥ðáH:\x10@rµë\x1C¾Kò\x95\x17_©ÏüÂ\x8DsðNVxËÉ!gǬ\x04ó1da7³QØÅ\x92D>\x1BÖm:+î@Qãc6¶\x9E_\x01\x8AiFMòZ{\x03©ð[*¾Co\x0FMÇ\x8D\x9F"7áÛ]=6s´XVÒ<`o\x04Õ¯\x18âÌ&ȵÎ\x93à\x1C]\x1C\x11\\;/¸\x8D2é³×~P\x88K@\x9Fós«6^\f\x8AO\x9Aê\x17*\x9EªBZ|kÌÐ\x136tW\x9CÙ\x03ÿ(HãX²5\x1B%â¢\x00 ´\x151ãÙ\x92A5T9\x1E\x16`\f\'5\x9CMÞ\x12`pX\x92¢\x9D¨ýnW&Û´5\x99\x9AÜ\x8Cñ}o\n' +
    "\x18\x16\x8CÂjñö6Ñ\x1F\x0Bë¸|ÒÉ\x9F¤{\x16\x9F\x86\x84'ã\x8DgÉ\fÔ¢Ëê\x9E»ÉRH\x82\x83\x11#Ê\x92lm\x9D\x9CÀÌÓ\x8Fø\x01yp#\x1DÅ\x97\x1Bð\x11KÈB\x91\n" +
    'e\x95þÀN\x14\x19­\x98¿áä\x156}¾ç\x90PämôP{ÿ5õÉ\x15«UN`è\x9D%l×*ÆPT$º\x1F` ø^\x01ÌÝû;\x7FãÈæ5P;\x18l\n' +
    '9\x9Dü²âòe\x12:zµ\x1CrK×PƼG\x81\x89KÈÀ\x18Ö\x1Bà\x86,\x96Ë\x0EùI&½\x95©\x98!ZI0¬\x8Cÿbº%\x19ø±9`N\x16à\x8C\x9FÙþ\x9D\f\x14\x1D8\x12M\x87\x15âÒÝ\x8FÃ\x90ÉÈÿ£VD#B¥®B³W@ð\x9A\rnh;\x99,/f\x96¦1Éó\x8E£²\x04§ÜH\x058ÖM\\¨\\\x1AN+@ø\x8CSÖcTÒ\x89å{-\x04ÕÑ0·¬©P\x1A£úu\x8F\x89\x13ò5í¨Ü~H\x0F\x88´{\x86Óã¹uAÏ\x8Fáà\x0EÕ\x9D\x04&Çæ¤Y\x03óú×A\x12\x048w-ñ¯PeÊ\x0E\x02ú¶\x15ª\x896Ù¸Ø|îxÝ?(Ã=ãà71Pc\x1D:4C7Áâ\n' +
    '\x89\\Õüâõ̪\x8C\x12W\x1E%±\x93^)íû\x01\n' +
    '\x9BÉWa\x06!ØP¡8\x01! È6<çÖÜ\\ÍÄñ|.v\x88°ÊR\x1Cg\x93ö^}·\x9A4öòa\x91NØÁÙ>JýjekÇ(!\x1F\rxf2LÎÌíf´N¶\x9Ap\x03"\x8F\x84ö¯]Ñ\x9D;\x0EÒõ1\x1CÔq£+Li°¾\x99f¥!zèX¤\x93µd¿f!ɤ\x8FdÀ\x02\x12\x9B\x13\x90\x7FR,(uHû\x98+õ\x828¡5æñ¡é$8È#«çÉ\x8Eº\x04\r«\'ü\x8C\x9C9®[_Èß¿åÒ)Dð[8\x93\x95^Qcs¥ñ\x88s±Z Ï\x88¡QFbÈ\x15c  i\x1F"ö5ùr¸hæ÷\bºÕðâÌmb\x9Bä#g\x17-Î顾D#p\x81gIG\x0E»\x981®B\x1AÙ\x1C\x90my`ßb\x95Ù\x1C\x05Ï}eôc\x11mt¦,\x8Aól\x1Em²h\t{µ\x1CÜR^Ì\x19þd\x83B\x01\x0B¦\x90è$\x11^ƾgCòåÆ?\x9E\x99\x9Cí\x07`h÷G,ª\x1D6Ü¥ù\x8FïA\x98\x8B1¨×)Ä\x80Æ\x90Q\x07ø"%Ý\x0F¦\x83§/~»µ\x8CæT6óÛ\x0Esͪ\x0E¦pîg=t<wo¼óý\x92çXÅmIW\x8B|\x97ï\x01T61A(¾0}\x0E\x985\x97ä\x18P=¨\x04ÌÇËí-m\x16Ëåê\x88\x02ÕŦW¶7\x16\x85Ja+\x91%ÂxIv\x8F8°Ô"Íαå\x94Ö5÷ãð­F\x05\x7Fí à¨\x92÷Û/÷\x98Y¦M£\x85¿E\x07\fMKuÛ\x17[ M~DæX]$d?Ï+ÓË\x1AthOr\x85\tü\x8E\x16\\Ùâô®\\hJ\r\x04Íè\x95ø¯nv\x1DB\x98ß8ÞPP^\x18Ê[}Q/\x04¹¯û¹ªYk\x19.õ0\\j¬_þÍ\x82\x8Adh\x85\n' +
    '5Ê0RÁ\x00Þ\x19\x9FBY¿,ñq;[Ä`\x83*Cxb\x13Ï]æôÞ\x94\x83å"õÒÿ÷\x82¤ÚÁÚ¯¶gÂ\b0\x87\x1A\x18ÝIì\x1B&\x0F\x97?\x03ãì\x11/Ö\x04r¸Ña\x93\fØ\x9D\x87ß1\x06ÞR¤4Æ\x80GëÀx­\b$ù"r\rL8Ý´\x7F½ñyÚ\x03sal\x18)òù;N\x13E\x8Cö\bõã75¬Ð#ôf¦Õ¶\x9Bîù}^ÿdH\x81tAeÏòà蠮Â|\x10î\x95\'ÝN\x10øºÊÙ\x13f\x13=D/\x91<\x98\x98µ`\x90BØ1!\x01K&Ã\rîG³ªIÓò\x83n\r\x1BF¡Ù>\x15c\x98)\x9Dü?Ôèu\x8B!.\x8FHø\x93G@SÍ\\\x1Dµ\x8D4\x8Bé\x925ö\x1C\x85h\x9EÅÛ´iVxLIá*µV¡\b²\x15aÒý[æ\x88;\x92j\x89~Xæ\x19i\x86L\x8E«$\f¾4R9à¥Þ\x9CÊÂ\x935$\x96S¾\x8DT¦À\x1BX\x8A\x82cì¬Ý{0?0Ç$C\x88<Ê5e·5¥ØÙù\x04\x1F({KUFCC\x07\x81.0`Cb*Ù4\x15\r¢Ú´>w«æÇúßÛ¨BE|kQ-\x8DFZìQ\x83;ç~\x04¬\x88\x11qëÕ\x04t\x91ðÕZ\x00\x0B@ô¿\x94Ù;Ð1^ \x02/¡zG&\x9A\x878{\x94è\x93\x9E\x07º9S£×<o´V«üÔ\x96©É\x97uR\x16r^îÑk<­(Þ\x90\x04\x1AolÏ@NO\f~]fÞJ+\x8A\x04 î7\x0B~\x90ð)ö²¿¾w:Ë\x7F\x84/\x02óͶ 1\x11\x96XÈÊ1}æi,#}n\x91\x1Cdº&ÌON\x15\x9C\x196\x87·\x93\x9CéüA\x0FF\x1C\x11\x95Ä\rü\x0B¿ë¿CIx¥om¶X\x03<Æ{Èúp~\x04Ú­f3:£Éø\x04Î\x97C®;º·î\x93õ\t\x7F¨úºÙ0÷êØ.¨\x1Dø\x98zkìQ\x01\x85>¯ãO[zSÁ9\x0F¨\x0E4_Ú^ Ð\x06\x82Õé\x92ÓìPÏ8>\x12\x17\x8Að\x18Ó§°\x14\x8E\x96¶¯a¦C\x07ØÖí\x84ËKøÊ\x85yt\x89Ù¯JwzÚ\x8B§\x9An^¢Uå_z@Z\x06l\x83×\x8A? ¡é\x97\x8F¤\x15\x9F\x8D#RpÅöÿ÷<êW7Õ\tÀmSwf\x12\x1BóB,¾\x1F\x8F\x9FC\rÂ%%\x15ô©]}\x87\x0Eä-(\x97\x0B\x07ç\x06òë\x92\x1D²á\x1EÕÍÌø?\x06\x94\x11)Jù<a[¦LÔ¦Ô\x7F\x9B\x9F¸Ð¢¤\x10Ü\x85\x88T¾^\x88b\x8Cb%Khº¹ý\x8Cº-\x81\x16\x97CJ\x95\x93¿\x8Dw\x06\x0E\x8F\x06¢~\x05f÷\fño*\n' +
    '\x9Bæé°\x16ªËÙQ"7¬§\x02eéa·\x9B¬\x1D!mºÑy"÷4×HÎݨ\x9DS\x89¤\n' +
    '¹Cþ²Ô\x07ÔÕ\fR\x8B.%ZW:?qçÛ¼\x9Fí25o\x88º+Îgº_²ÝÛéu~9U-ràä¸Äíð\x86¥\x18\x98¼ñ\x8E\x12·\x90(\x96U¯ýg\\?­ó\x03\x9A\x01H©\tÑÄ\x02È\x87!g´YoÍ\x14h©\x8F\t=ôÔ"\x85&^ç#\x06æ#\x1C]ýÈv({Ð0\x8Aô*\x7Fô\x95\x05àÕñc£ÁÃu\x9FIË#~&ê.ÅÍ\x9DÛøñ6\x83\x91\x92k\x9C\x1DËßÁ`\x93ÁS\x1E\x9Ao\x18Td¬ò\x11¶\x9DVb\x1Fv@áÐ\x9FÖ.ém\x9E®ÛEF¿tizd#A\x8Cåà\x04ŧ_LæS\x91d\x1Aóܽs\x0E\x10f®ô0\x02_¡y³KÐdDR\rÓk¾´dì\x95\b\x89>-©¿\bêÉÝ\x80d×\x9D©jIÀÌz7²9>X\x95Ϊ\x83ÁÀcä-|ù\x887¾ñc]Ó\x10ìp.»½½.ø\x9Asæ\x04Zr´¥\n' +
    '\x1Bmnì\x0F»VêyÆ\x00ÌNMÞ\x1Aã:ð\x12òp,\x9CØ#¡G¶Ä\x0FEÏ]×FÈvfa*áù¦î1N¼õ\x9E\x8B*Þ\x97\x0BBÉ?t\x02Ãi¯ì[¼×7\x03cÈ(\'ÁE6\x84\x8EË!-=Å\x10ÈËVïÎ"\x9FÒªÅÇ\x9Ex6vÛóü\x84ýb·úJV\x16f¸zZ\x96Ò®Gª?\x0Bds\tÓt&\x1C?$SS/^8̶±ÙN\x9EøÖ~Jt8b\x9B\x10\x87A\x10ðß$\x8AªßYa\x90li\x82Ð\x0FÝ\x9C5·(\x1C\x89°\'íÿÃÍh©u%\x95©ËRj% ú\x91\x11\x01Mü\x07\x98\x85ç7\x16V¨Áng\x15±ø\x8Fæ¾Ð©\x1DЧTí«\x8A°ÿñ0ä!\x03\x18jô\x9EZE\x01CÃ\x9FUÌ\x9C¼DÍ\x96®«àW¾5Hí:\x18\b®\x8Bʺv.4£fº¼2nH"s"ÀÑ2ÜQ\x06\x0F0®µ}æ©sÁ7~¢ó9\x12Jó\x84}:i\b\x90jI\'Ù\x0Bÿ\x9B\x0EBs\x9B\x06ä\x0FtGÂ\x97\x90,11¶j¼¦UbWì\x0F£Ñ±\x17Øø£:\' Ð\x99E_@¤\f\x17öP\x1C\x19\x1Bö¬3}çÕ¦\x0E¿\x01\x1Fëì òUJ qZø§Âµ\x86Ô£\x1AP´ÂìØ&î\x14]Içé\x94_`1³²\x90Z\x9F8à2FÐÊ\x01t\x92Ô¤\x9Dö3\x19ë\x89å\x9D\x8Cëµt¥{¨H^gÝ?ÏK$\x07x7§ÊªÜAZ"\x8Eþ\x9Cv¸\x9AÙÐ\x11à3Á\x15ä\x16â\x98Í[@µÀâë(çã\x9A6Ö\x16^\x96\x19\x89¬m\x9Bk÷\x01sëÆÓ\x10;:´ÇoiÓn£ \x1C\x17\x83\tìf\x13uØt+À¥\x05­5%¬\x18\x9A\x9Bå\x82ÛÌë­T\x1Có)æ\x1E[QÐ!î\x97°\x8Cm\x1AWy÷\x06g@=­OÂ\x88SîÄ\x03\x87\x1AyQ§£«B¿ñ.\x16Q\x0Eð[\f¡\x82±J6}+¾<Þ·å>GÈ\x16 nçÈ\x9E¡îÂ6¾&9Ý\x94o)B¯U9hÑ\x12\x18!2ç\x1A¹+u¼~£ÝÖÞ\x04jv\x81ÁTèÎ\x8B\x80Ù¡ofyÀ§?Ãç[㸾ٰ[+=\x002\x96\x9DËjÕeínbÈo+Z²è\x88\x0EA\x02\x97ù¹ã4\'\x19ôô\x16\x14¾Ö²¥\r/¦N²G\x90á·\n' +
    'Oÿ\x07b«ê\x96\x12ݧV\x90è\x82ü\x94èÝê¢\x0B\x8F80c#\x1F\x158\tÊ\x9C2ZMø\x02\x88A·ôB\x94Ê\x82®^\x0F\x8D~\x8F\f\x9CP"D\x1BÐÛ\x13ÃòÙ\x7FKùX7þâ\x8FܼY\x02rzU©lï\x8A\x14á\x86\x0Ezó¬Q\x8Bâtàcvظ£¦*§à¢ÃdâpBy\x02qç8"\x90öë\x9DP\x19\x81\x86ÑSBϵ=k;ák¨\x1D\x9E½î\x8D«\fùD\x06\x02Ç\x10\x99yrjÔ\x10-êØ¥Y1²GßtΩÄîºÜK»?\x7F"´Ýmvìw\x9Anê\x96ÔðDõAà\x9DîXq#\x82ï¼\x06\x8Cë$\bÚg\x9Fù©\x811ûê©OYæP{úê´-F\x1C\x95y\tÒQCR$\x97£NÀØ¿â\x8F¯±N\x04q\x81\x9BÓ=\x91¦¶\x92#ýAx\f- 2è1õêó\x1FÚË®\x7Fr\x1B\x98ø8_\x01ç!9\x1Aðtù^^>Pë\x1E\x15Ö\x81~¦%&]Ã$¡\x93VýïV\x00,§!\x8C\x8BÛÿ\x00[\x9D¾2\x8D:®\n' +
    'ç"â\x1Ed\x99ÈîÕ\x9DýHX=ÓGA\x84]±ÃDÕ\x88,É_ô\x8D$\x9C\x8DÛë\x1CÀæ\x1AÄÀÈ}a©|álÊ"ìF1;¨i\x93~s\x12\x0F´CϼU\x0E­Ô@/Ä%ö\x06\x8500¦\x87\x17¢¥\x8CΦ8\x05¬Heo¾L\x9DYÉ3æ\x8DGc\x8C·}ùÀ\x7F£¼\x96ë\x13fB-pLëã\x91û¯h§\x85g\n' +
    '\n' +
    `\x02Ó¾­VMæ\x8A\x14U¥k«jßÈ\x0E\x1C£¬ì\x16bÄ÷µ5\x11\x1E\x83w|\x9D#\x06\x80\x1D:½\x93\x93\x9A5Û©«²Ò\b\x81\x16Ý\x97Neë1Âb\x16­\x87 Ù\x81\bë ¿:\x95µÀií\x8C2ìg&3\x0BÖ½ïØë)\x1F{\x8C\x98¾ô\x12\x16²\x85,×\x95\x03hàÌþã\x11x{ª\x87\f꩹­Ò)¤ÛkE\\±ÑÇÂ\x01ÝF\x95>½G÷û\x07cg\x15i\x04Õ³0j¦\x82¹cïÌm·\x82ñã\x02cÒm\x92ãïM*\x95\x89ïªt<\x1CÔU\x16c\x86Ã;A¿ÀünL\x9F\x0B«\x1EÈ[uâC¾\x1C/4\bªW¯qµI¯Æ\x98\x7FkiMS\x90\x84\x812µõ·b\x9F\x86çßæU;·³/ÓL\x9B%\x1BH vÃ\x13D\x0FøE\x84Î\x9F\x8Cy\x97ï6\x960\x951FЧ%\x11ÅZbJ"çg\x8Ce\x05\x07»\x84\x88ýª¸\x88ÃʤßÓ'aAºwet\x11R\x05ýäïÕñ5¨S'UÆìâ>\x84ýÈ-Ù/p\x15T\x11°\x8Ci\x13'r\x81PR\fuð_\x17\x90­\x071\x12úW 2æ¿ó§bÁV|åeø\f$\x18\x8Dw\x06ÆBú)Î."L¾y×\x7FBd\tZ«¨K.\x87Ý\x8D4GÅ\x07øFwCs\x9AM÷\x11WV|â\x81\x88;É\x18þ3çnÉ_~\x1B9M\x04Ìu\x8F¡Ä|\x18)ó¼®\x9F+tâã\n` +
    '\x06R\x900\x90@\x91\tÐ\x1Bl\x02\x133\x02\x94Y\x1Cs:«Ù×ä£,\x93¸\x99\x8D\x19B»--\x1FØ\x00ß®C$¡F\x19q@-:«?v\x8FÄ\x12\x1B5\x9F\x99¢\x96ñ\x12* ®Å¥\x95\x7F\x87;\x90öEsf\x0E¬õ1©àÏ\x141p£{U\f³\x82\x00Ylûì¼\x87iºJv}\x19±\x1D~l\x82\x84ÔúE.âdê\x04#yïø¥zþm)ðîâ¯\x84å=\x85ó\x9F\x00 þ½h³\x19&á» @\x19¢\x91U\x85\x96\x1AÌÕ\x93¹oÇBÈÂPÅb E\x9D³}\x82\n' +
    '\x8Bu½¬Ü,\n' +
    '¸\x7F\'éí;H n\x13\x86a²yÏ«¾îÞ¥w\x13¢å=º\x87]\x1B\x06.\x04Ç\t\x91\x8A\x0B[áU¡\x0F($gD±9\b6+\x01:¾Ûpj\x8D$ÿó`\x89\x14\x8DÒ3\x8CÓÿÙ0d(æÍ­Ô\x13\x9FËtþ!¨ú8¤#iPg®ô\x81¸"ñ6±Óùª\x1F×\x9ADÿi\x8C^Øa\x1FW~âqAH\b7Ìû6\t\x02Ôt\x1DOä\x11Â++1ÚÌ\x0F\x9Fôýý\x83$ãÁø\x86â?K-Ld\x03\x1CÕÝ\x02BÖ\x92²\x06°\x0F\x80FU×\x04j¡>¤\x9Ehrp³¾\x06=^\x1As¼\x85X\x86Â#D\x88¤\x8C\x1E»jÿ´VZfÈsQ"Í\x8Fæ[J\fÚô\x14ú\x02bê)¸°\b#ó¾\x97¶A¿i0\x98\x15d£TGfïu~à\x80ÿ\x8DÖ^\\|!2^ú/*\x18OKGê<\x18\x87ä\x902,MU\x95ÃüÑ\x938\x0EFã\x8BÇD\x85OSP\x1C|\x98í¼Q\x9Bô8\x1E×/Ë#Ò\x18â/\x84\x06a«ñ@Äè\x04,6§þ/"2?¤?®?o\x0EL\x00\x07^²)òÁ\x84{\x1A\x99\x8CýçÆ*ÄY¢E´g5\r\x0BIgUË®%·Ò#?r\rÃ63æ\x91þ|\x88Z½GðwÒ\x9BÉè\x9C\x8DëI\x11O´ô\x85~¼øD\x16ÆnKfç\x83Ò;\x02eƧW\x1C\x06k\x0E\x95À³f\f (½§ôü\x15 ¥Ý¼GÓ\x8FÐEøg\x11ó5oæ\\g@\ró%\x9B¹#%>\x91\x07û\x7FÀÇä¥b+\x80W\x88~\x7Fî4&A\x00ð\\Ý\x14ÿ¤>\x9C«l¶yÆ\x81íaÓ\tVKTALR§\x1A\x7F\x81íaÃ[\x1CÂl²\x94\x00Õ\x91T~1´\x00Õצ[á\x0B\x14MqCSîØ\x9E«³È¨\x1AÖç¹A\x8AFeia\x88/\x05-.}Qæ#ëb¤*g·\x8Cy2\x96L\x1Bmâ\x9E»f\x8B»\x1E\x18ÃÕ&Ú¼\x976/~\x87°\x16É\x1E¯\x90)k\x95\x83\x16qË*r­Æ&Ê\f\x04/´n½\x9E\\ja\x1E½C\x06,\x8F\x90.m \x9F¶\x83=+N¿á¦\x1CRÉ Å\x94lrj\x84\x1CøÞZS9ó¡ÅWÜc9\x1B\x1DwØ?\x1AÖô\x11Ý¡ZFÔ¥nqÉ\x82d\x80á+Q\x82ùn\x1F!«Í*º\x83\x12ÞóRZ¿\x06?\x01ãå3ÛW\x1EÈþò\x85qPÅ\x18s\x89Ç|Ãu§E§¡\x1FY\x99\x7FâHý6j@\x89\x8FQæ¢7.\x07i·T\r®AÆÈ\x82uÐkÁ×\x1CÎçü\x1A\x83e\x16\x89\x80x\x85ºFä\x06\x8AKä|\n' +
    '¾\x13\x1FÿñN AÔ:O}\x0F\x9DÕ&»µÝiðµ1×ÆÚl\x83n\x16ÞÉÜ@ßÒ\x9Bö»ÜÄ)3E;}¡\x0B\x0F_\x94Ð¥\fg\x81 m\x17+\x18:@Baϱú\tÝ¿Û½Ä\b\f#@øX^\x06\x07¶Æ\x8E@Ô8\x90AÄdö#ÿÊ\x12Ä\x1B¥\x93Ö\x10À¬¼LÓj©ÁÏÕÎØh+\x81£ßÔÊî2\x1AÛã÷:t!OFL\x83\x9Fú@-\x00\x9EõÉ\x10e \x99w`ì\x96\x8F~ç*8\x03Y3\x11Â2SWk\x07fÓh\x8A×t\'q\x82\x9C´2\x828ÍM\x8Bpái\t{_Ç\x05ýôøá\x01\fÇ\x13\x01¦\x91¶-\x84(Y\x1D"§ûÀ£ô\bAÐ\t;2úÐÛë7_¡>Q\x01\\èV\x98k®jnä·\x01\x1Fk¼j®ê·\x87_wÎö\x86h˦°¬iUÜ5Ï\x05\x13ç@´°V¨Ðóײ$\x1EóÉK\x01×\x8EW\x8BÖçTqHµO¿\x10{\x9D·>ªÇ\x19s­;\x16±\x8B\x1E·­Øz\x8E\x03×a\x99J{\x88\x94\x90\\£\x06h¥ú\x02\x97çA\n' +
    'l7æ¹&«W0Ê\x172\x8FÃ6ø~µ\x05\b\'´\x19\x1CL/:\x16(@\x05K\x03\x1C-¥§\x84>±\x971NÑö\x9Cón çê?õB?ß\x06&\x88à&ÂHK\x83lßæ*¢\x10)¹¼SáF4l«²\by)uH?tf#wÉa\x17\x85|Ä\x85MÕ´]tOæ\x05\x87"Õ\x95¾þ\fµ \x10+÷ÃȨ\x1A\x02<â\x1EøÜ\x1D[Q/3W*©£\x1DaÚ\x12ü\x9D\'*p\x82]]\x87\x07rߦë\x82b²\x10Â[\x9DÜÅdÇ\x17\x93ëÍK\x06/»é¡\x17Ú\x90;û\x82©kd¸\x19+\x86û`ã\\[sóö\x92\x81üj\n' +
    '\x948¿\x82®Ýeþ\x89PTV\x98Ìí\x8Dt\x88§æÎI\x03dìÜ0Èøù¥¢\x07\x90º\tþ?\x18\x84Àõl8~$+«Ây^-0}\x10à¹\x8F+I§Ó¨Õÿ$æ3BÏ.3\x1A\x8F¤\x99SöuL¨oGí\f®§j\x7F|/­"\\±åËãV-\'m#8YG&D«\x96_úÝôq\x8D_¯º\x9B#<1\x15~°g°ñ³\x18\x1B¦az\brøä<çWÃnfï\x96¢n\x80\x19\x82nÏ\x12å¤2B\x91õ\x95Jë9w¢÷\x88L\x93ùX%\x1C\x8Aúð×йpê5¿ñ\x93­\x13JE?®¨Ðbó\x93\x1C\x1E3\x80,w4n¿\x88\x86»SÄ\x80CñC.éíNÓY¯%­JõÍF&\x0FA\x849n©ö¶Á\x9FK\x9EÌve¡\x01Ò\x13\x87¦H\x8BV¾Ü¨¶L¤æÝ\\\x1A\x96í\x16ÿB­áàÑZÂ\x074ß²÷\x17\x98^ûâ\x1D\x1D¥~ø\x150W)Û\x9E[\x8FÓ\x06´ÇËX6\x8F\x18þ\x9DZM\f_\x9DDãqÑk+Í\r\x04=0ÎõÃH="\x05¯\x9Bä|,\x19#åÃ\x9B6²\x9BÝ@§2\x9F\x99ÛÆ#á\x86d\x98Ïc\x8A;ª\x8B¨^\x95yÆ^txWé±èP¤°\x04Íúd$])+\x16!9d©ºÍK\x8A\'ºµ\x8FÃt\x94í²®Yß\x02\x8DIý\x8CÉ@\x82½\x17tÈÛE"`éFþ\x04k©¢Mä\x12u\x84 ­¿We¬\b?öûé\x11:ò\n' +
    '¦?\x1A\x9B\x0F\x8E\x16ROì\x8C\x12\x96¾0ñî\x19æ_À\x18\x96r^m\x9F\x96\x97\x86u¤\x19¸7\x8D]¡¤\x93Eªî\x88\x1BªðúX§ÌOæÓ\x1AV\x84\x03C«sÌ\x1Fç­mòb\x17PÚû,.K³©½td\x9F`\x8FÿѶ\x03!¥U»à\x1B2rz"G\x88\x89$Ou\x9Cäúzá-6ôëuC\x98Ìt\x95\x8A[+[s\x07\rÊ\x1F,;-\x9B\x1D\x97ʯe@\x1D\n' +
    'T$V;J\x1A\x9F77`y9ÅE(v/~¬\x1E\x99ô\x19ô¡.\x82jzXv\x11\x1FBZT\x9B\x84\x18ã¶SM\x10ßUÔD.Ù»1þö\x9CÁö\x05w³eñ!!±¡\x97\x04´i\x03M뿾)\x18çÉ\x9B½¤VkÓI\x93Ö\x86\x1C\x8B.\x9D,\x9F\x016\x87/Jçaºs\x00Ã7ð?k\x14ÄWòÇð±x*´Ñ\x87NxÔÛ@;p-%\x12$»i\x8C\x83ÜL?è}\x89Õô±²ût2\x94È^¹\x97\n' +
    '\x1Dº¥ú«s\x18g·\x84X":¶PO(zÓdÐ\x9E\x03üÆ\x01\x1A\x14OHã\x97\x18OdqY­\x99Ì¿v \x18\x92§ÞyHQÆ\\/\x1A}¸\x94ö\x85ÿÏia\x87:Så:\x7Fz\x03Ð\x13¢\x81ð>\x12Ow\x17ë\x01þ3ËZJzk·â©\x84\x1D;:3%Ðô.rJ\x16ìù\x97Ûÿ\x04`9):¥_·/\x10b1Q\x05ðK w»¦ô\x86Å\x1Fë¯Åº\x9A\x86\x04\x82¬Ý,ÍÉgu\x17Å\x8Aèg=¹.ÛLeu\x9B\r¥ ¯"k@Ôí·kýwûT\x00\x98W\x994Õ\x180\x98Ê£d\x88>\f\x07N\x9B¹$´\x1F,E¹Eg4ÏW\x7Fa\x8Eª\x90g¨[Ü-ûq+` \x81Oæ\x1B+VÁü­\x1F\x95ä¤\x03\x0EÛbF+!1;³¦ú\x97çܹåX¥.\r®»(^\x1Ab\b\x15Oî}\x1E\x8EsÞ¾ga_,ïeñ.\x10\x18®ßï\x8An[WÂvù÷P2\x89[Çp|Ó\x07ï\x8DÉ}¹\x85g©k¾8KÚÍ\x1B¼óTÏMµ6ý\x9EÏPëÜ\x01ª\x8E¼\x86ûÎäBsKQ¯ù\x82¿BÀ1Aâ\x1E¾\\\x8Cü\r\x89\x1F\x04N\x9C\x00¿ç4$RT\x02rÏ%\x02~ô\x88àªËÂw&1®e÷>"\x91\x8C}´Ð\x12Ôôê\x04&\r\x9E\x9Fÿ\x13Á¡DÕTÏmnu§\x19à\x0Efd\x14>\x91\x19\x0EÿN̵«\x1AZYp\x8DRûX"\x9AR\x05ZvµÖ\x8DO\x9BßÓU\x14ë\x07åöø\x96FÌ\x1E\x88\x12t\x1E\x81Ã\fMf9\x96_÷¼ÃS«pÆM«Pm\x1B\x97d¢¢\x91H©¯,NÕ(³7Jrnp³Ë8Î\x9E\x90Òð=Éü\x85\x18H\x87á<N\x14\x92Y\x14\x8B\x03r\x19®ìáª@æø\r\x8FÈ\x99\r\x91\x85<:\x1E@<Q¥Z×\x9E¸=\x96e¨\'fbôÊö÷ð7\tÑý\x0F\x87¼\x99\x98\x0Ep\x01\r_Ø;V¥Ì·í¨A£Ñp\x86G\n' +
    'q¹v4u¬¡saº¯¾U:¯d\x03=\x80Û»©\x03\x11"¨\f\x18/ZpJ\t7\x90\x83\x81å1GÿÐô×2ß\x0E@Z3H\x99ð5\x1Aö¦;²ªn\x7F¨Sà2¬¶âõ<y\x92Û~\x87\x86\x1EÈ\x0FtMWJ88+zýRÌê9P\x81fiI$\x9DvWZ\x8E\x9B\x7FÅ\x11æ\x1F ¾Á<JÿÅ\\5å$·Î÷\n' +
    'ç+\x1A#^qô\x0F\x0F¤ü\x1FK70j\x96Ì\x9Ar\bKoÇlÑȬ·\x89\x85±Ì_¡ãú\x05?W²\x12Tn¶:u-n#P\x8B}\x1Eì§XOý\x02\x8D\x9FÐ|û\x03\x12\x82æ\x86¬\x9A\x0FµÁ\x16á\x1C\x1Fì\x0EÜ\x84\x8Eb\r\x14ûô¸4\x1C¡Âµ6ñS\x0BÄ\x8D<ìsK\x94óÇßý\x11àýB=½ØßXÆ¿r\x85`eøxT8Ô\r\x92Pi\x17ç,\x1B<r\x16Æ\x91×\x0Fíð~o\x94⬶\x96ßdA\x8Dxå<ScM8`ÕZ\x02aR\x9B¤G@¨³YB¯1Õ²ÿú¨\x94;\x81M\x05\x11z¦çÉÇü{~³GK\x90\x1D%áÆ\x8DP\x90Ðm\x95\x00\x1F\x178\\ÙÏÛÅ?µrØ:ï}¹\x19\x19Ï\x82\x06\x06\x96;i]\x15Þà\tÞV%\x94®ß\x8B\x1Eéª\x04\x9Df\x14÷Ï6\x9C@\x03\x10ôØ°£øç\x9C\x9C\x1FM5M@BìiÉï¶O\x115È.\x0E×YШb§\n' +
    '$Y{c\\¡\x84¿5B+J\t£,]\x04\x1C\x9A\x89\x17Í1\x10®\n' +
    'æêf-×ðËV\x15f\x13~\x9F\x0FÉ$\x00\x1A~«.\x8B®Yr\x8Aò_ë\x1C\bZ«\x80_¹9_\x1Dê¼ÛØñ_U"åÊ\x12^ßÿTrYK\n' +
    '\tmÚ8!gLÐAeNÃ`ÞxqqyêÆA|8²o²\x96\x87a8ü S\rÑd¹¥Ýa÷\x18AMCNu\x17\x9B\x11ïç\x1F\x8B\x82\x9A®4ê\n' +
    "\x1B~\x16¨0õø\x90=*ÍÑ\x0E×\x12Õ\x1A\x1F¬\x1Aßÿ\x85t±2(\x919Q4O\x87\fõËEuÌÏT\x16)§\x94'á\x04{L\r¤\x89¼T1â²ßí2\rØÕÅ2\x1DK\x9Aþv\t¨\x9AÄ-6\x94\f\x7Fzõ\x0Fk\n" +
    "r~\x15Ð\x91\x8B\x0E\x06ª\x1F/\x17)ÝÁy\x99\x9F\x9Eá66Yx\x8E\x9AQ'îÁ\x8B£^ÀìlÙ\x7FÄ/ü¦\täÄí\x0B³^µGKÿ5Å=\x1E£ZG¡µ\x9C¬É¶h£òÓ¡¹\x17\x8Cÿ³/RÇvqé\x0EgP\x1Aüh2\x81\x8C°xD[¿aÉ·,^}(\x9F÷kRu}b\x1F{\x01.6I°vãQj.GÞ³ÃOj>T@\\·6ÀâdæóP\x96\x8FÀ|?fl\x8B\x88\x8F §E\x03¤é_»«gðá \x87%M\x1F$\x7F\x9CØ>Z¢\x1D¸÷»<¶d[­¸8y®\x06§kU\x87 µ\r^\x00vR/K\x947ÑÝü¸çAÅjÔüý\x04\tª9¹6H\x03\x11\x05\x90\x9F»ðÊ\bJu'yó\x1Bî\x05\x02\x81\x15äH0)ÐxJÄo\x88Q\x8Cût¿NâÚ,§4Sj@\x0Eò\x02w±íÕ^u_\x1D\x1Ao©3\x1E\x17\x96\x94â\x0E<Á+Ù)á79ÒäîÊ\x81[ª¯ É\x96«^kòî\x0E R-êýÏ*\x90Óÿ_N²6\x8BQ¤6^-\x97\x84Wæ_\x9CÅ\x1D/J\x96z&¡Å\x97Ö\x14ãN÷\x9E\x9C«ÂpêÙÀ楿Î\b3&¼e¡ïd(õYiTNð'8Î\x84\x8Eµ\n" +
    '\x986\x8D}ò\x83µî<\x9En®ÕÂK\x12\x1DQ\x9D\x81nÁè\x19®i)£è\x95ZÂê\x1A~§Ô½VS\x02´\x92\f\x7FH­¶à¼6]\x1E\x11ÝÀ \x1F/7\x87$"sÚR]l¡%2:æêP\x88\x12`¦ð«õ\x9BÇn^\x91%¿9ä;\x12µ;Q?\x93¶\x1AÓ\x0FÚ«\x8Eº¢¢\x18´¤g\f\x85*&t\x85\x89ÄÀÓñìT£Lv^1¡¨WÑ\x9A/¤,·U\x9A÷º&5\x9D?÷[\x8D\x1B:\x10\x89=\x956¼º\x19w\x9B¼"B\'O\x85(\x97\x9E:&5\x9ClÓ8}\x84wcô\x9C²X`\x9E}b\x7F&\x01ËëÇ\x93´\\\x90¡Ö\x97Æ\x9EVt¥>ä\x05b¦º°\x1FPoa\x1EÃ\x1BÅÝ\x11íñPØR0\fÃ¥ÏÛ½vË£Ý^¡á\x02ª0¢I(ÇX]vBiG8\x14M\x8EÁ)a:Õâjiv#0£CX ±5Tº\x10©\x83LýcÔr\x93\fèmí¦\'"áuÜïEX^\x8BA\x11(nîÍÓ\\\x1Cã°\x01\x0E\x07ý|\x85î\x880ä\x1622rDmWq\x05¼\x99s²±7\rB\x999\x82!Þm<a¦K¼í²£Ù|s¯rx¹ñ\x93jHî%- 8¨<@\x0EY&õ\x97)~¨Í \rÙI`\f\r@\x10-­\x0B<VÔr[K\x16\x8Dh\x0FÓã\x95\x0EàÿñòH\x13÷\x18\x1E,\x00ê»!&ÑÆ$#pз~ÈÎñò\x1EVá^ï\x84àÁ+\x86P\x89#g\x1FÖÊfQñ\x82\x85\x97\x16ÿy\x856Ì;¾\x7Fq°{³8ÚWge\x7F\x03ÁlQg¤Æ/\fù\f\x1DÃ\x9D\x1EØAFÀr\fGè¹^í\b\n' +
    '©j\x03³ÅÑÌ\x80­âu¿Ã>Oú¶½2.?\x83\x048F\x98Årîâ\x8B¹k¡Y"Û\x0BRWþÕ~\x13\x05ó}\x9Cþ\x93æYX\x95¤©Ò£ï|3Oëàß²yG§P\x10£w\x8AEíIÃwABÈ\t¥\r\x0BÓ\x8A\x1E$Y -?\x89M&º\x85Y\x83^\x0F?\x92]#\x82óêÄ\x9BÙÝÅÒ1\x87\x93\r^èîY¢Së÷dø\n' +
    '\x0Eéì;\x00H\x98\bA\x94~vë8'... 53682 more characters,
  compression: 5207,
  start: [Function: start],
  terminate: [Function: terminate],
  size: 3777759669,
  originalSize: 3506773188
}

Is there a way to spot and deal with errors like this?

101arrowz commented 1 year ago

This is a known issue with streaming unzip since it just looks for local file headers (the byte sequence can be replicated in a file). I'll try to make this work better by making it possible to filter out obvious false positives.

DavideMacchia commented 1 year ago

This is a known issue with streaming unzip since it just looks for local file headers (the byte sequence can be replicated in a file). I'll try to make this work better by making it possible to filter out obvious false positives.

Ok good to know. Thanks for the answer.

DavideMacchia commented 1 year ago

Can I ask you if there is a particular bytes sequence that leads to this error? if yes, can you post it here please?

101arrowz commented 1 year ago

Sorry for the delay, the byte sequence should be 0x04034B50 (little endian).

DavideMacchia commented 1 year ago

Thanks again.