diff options
Diffstat (limited to 'g10')
-rw-r--r-- | g10/ChangeLog | 9 | ||||
-rw-r--r-- | g10/compress.c | 23 | ||||
-rw-r--r-- | g10/misc.c | 2 | ||||
-rw-r--r-- | g10/sign.c | 6 |
4 files changed, 30 insertions, 10 deletions
diff --git a/g10/ChangeLog b/g10/ChangeLog index 3a879b706..bbebbd920 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -1,3 +1,12 @@ +Wed Dec 9 13:41:06 CET 1998 Werner Koch <[email protected]> + + * misc.c (trap_unaligned) [ALPHA]: Only if UAC_SIGBUS is defined. + + * sign.c (write_dash_escaped): Add the forgotten patch by Brian Moore. + + * compress.c (do_uncompress): Fixed the inflating bug. + + Tue Dec 8 13:15:16 CET 1998 Werner Koch <[email protected]> * trustdb.c (upd_uid_record): Now uses the newest self-signature diff --git a/g10/compress.c b/g10/compress.c index 917a96033..6a2f8f8c5 100644 --- a/g10/compress.c +++ b/g10/compress.c @@ -76,8 +76,8 @@ do_compress( compress_filter_context_t *zfx, z_stream *zs, int flush, IOBUF a ) zs->next_out = zfx->outbuf; zs->avail_out = zfx->outbufsize; if( DBG_FILTER ) - log_debug("call deflate: avail_in=%u, avail_out=%u\n", - (unsigned)zs->avail_in, (unsigned)zs->avail_out); + log_debug("enter deflate: avail_in=%u, avail_out=%u, flush=%d\n", + (unsigned)zs->avail_in, (unsigned)zs->avail_out, flush ); zrc = deflate( zs, flush ); if( zrc == Z_STREAM_END && flush == Z_FINISH ) ; @@ -89,8 +89,10 @@ do_compress( compress_filter_context_t *zfx, z_stream *zs, int flush, IOBUF a ) } n = zfx->outbufsize - zs->avail_out; if( DBG_FILTER ) - log_debug("deflate returned: avail_in=%u, avail_out=%u, n=%u\n", - (unsigned)zs->avail_in, (unsigned)zs->avail_out, (unsigned)n ); + log_debug("leave deflate: " + "avail_in=%u, avail_out=%u, n=%u, zrc=%d\n", + (unsigned)zs->avail_in, (unsigned)zs->avail_out, + (unsigned)n, zrc ); if( iobuf_write( a, zfx->outbuf, n ) ) { log_debug("deflate: iobuf_write failed\n"); @@ -132,12 +134,14 @@ do_uncompress( compress_filter_context_t *zfx, z_stream *zs, size_t n; byte *p; int c; + int refill = !zs->avail_in; if( DBG_FILTER ) - log_debug("do_uncompress: avail_in=%u, avail_out=%u\n", - (unsigned)zs->avail_in, (unsigned)zs->avail_out); + log_debug("begin inflate: avail_in=%u, avail_out=%u, inbuf=%u\n", + (unsigned)zs->avail_in, (unsigned)zs->avail_out, + (unsigned)zfx->inbufsize ); do { - if( zs->avail_in < zfx->inbufsize ) { + if( zs->avail_in < zfx->inbufsize && refill ) { n = zs->avail_in; if( !n ) zs->next_in = zfx->inbuf; @@ -148,8 +152,9 @@ do_uncompress( compress_filter_context_t *zfx, z_stream *zs, } zs->avail_in = n; } + refill = 1; if( DBG_FILTER ) - log_debug("call inflate: avail_in=%u, avail_out=%u\n", + log_debug("enter inflate: avail_in=%u, avail_out=%u\n", (unsigned)zs->avail_in, (unsigned)zs->avail_out); #ifdef Z_SYNC_FLUSH zrc = inflate( zs, Z_SYNC_FLUSH ); @@ -157,7 +162,7 @@ do_uncompress( compress_filter_context_t *zfx, z_stream *zs, zrc = inflate( zs, Z_PARTIAL_FLUSH ); #endif if( DBG_FILTER ) - log_debug("inflate returned: avail_in=%u, avail_out=%u, zrc=%d\n", + log_debug("leave inflate: avail_in=%u, avail_out=%u, zrc=%d\n", (unsigned)zs->avail_in, (unsigned)zs->avail_out, zrc); if( zrc == Z_STREAM_END ) rc = -1; /* eof */ diff --git a/g10/misc.c b/g10/misc.c index 3336f2b92..adab4321f 100644 --- a/g10/misc.c +++ b/g10/misc.c @@ -50,7 +50,7 @@ pull_in_libs(void) } -#if defined(__linux__) && defined(__alpha__) +#if defined(__linux__) && defined(__alpha__) && defined(UAC_SIGBUS) #warning using trap_unaligned static int setsysinfo(unsigned long op, void *buffer, unsigned long size, diff --git a/g10/sign.c b/g10/sign.c index ffa72c0d7..012b7e85a 100644 --- a/g10/sign.c +++ b/g10/sign.c @@ -512,6 +512,12 @@ write_dash_escaped( IOBUF inp, IOBUF out, MD_HANDLE md ) } if( state == 1 ) md_putc(md, '\r'); + else if( state == 2 ) { /* file ended with a new line */ + md_putc(md, '\r'); + md_putc(md, '\n'); + iobuf_put( out, '\n'); + } + if( !lastlf ) iobuf_put( out, '\n' ); |