Guillem Jover wrote:

> Ah! Thanks for pointing this out. I'm not sure upstream might see much
> point in fixing the stdio based code, but as I skimmed over the code
> anyway, it might be useful, so here's some of the problems I found:
> 
>   putLong (Does not check for errors from fputc)
>   getLong (Does not handle restartable IO as it unconditionally calls
>            get_byte)
>   check_header (Migth fail in with Z_DATA_ERROR due to interrupted fread
>                 from get_byte)
>   gz_open (Does not check return code from fprintf, might fail due to
>            interrupted check_header)
>   gzread (Migth fail in interrupted getLong or check_header)
>   gzwrite (Does not store the partial written item count from fwrite)
>   do_flush (Likewise)

Sorry I missed this before.  Looks like you caught a few problems I missed.
For completeness, I should mention:

    gzread (Does not set the error flag on short reads in transparent mode)
    gzprintf, gzputs (Uses gzwrite)
    gzgets (Does not return the length of a short read)
    gzflush (Uses do_flush)
    destroy (Does not allow retrying after a failed fclose())
    gzclose (Uses do_flush, putLong, and destroy)

It might be good to document that these operations are not resumable.
Hopefully, gzlib will deal better.

Regards,
Jonathan



-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to