On Tue, 2004-08-24 at 13:49, Giorgos Keramidas wrote: > Hi Sean, > > Does the patch below also solve the problems with tar you were > experiencing? Yes, the libarchive patch solves my core dump with bsdtar and the vfprintf.c is for correctness. > On 2004-08-24 13:03, Sean McNeil <sean_at_mcneil.com> wrote: > > *** lib/libarchive/archive_string_sprintf.c.orig Fri Aug 13 > > 20:45:45 2004--- lib/libarchive/archive_string_sprintf.c Tue Aug 24 > > 12:58:24 2004 > > *************** __archive_string_vsprintf(struct archive > > *** 47,65 **** > > va_list ap) > > { > > size_t l; > > > > if (fmt == NULL) { > > as->s[0] = 0; > > return; > > } > > > > l = vsnprintf(as->s, as->buffer_length, fmt, ap); > > /* If output is bigger than the buffer, resize and try again. */ > > if (l+1 >= as->buffer_length) { > > __archive_string_ensure(as, l + 1); > > ! l = vsnprintf(as->s, as->buffer_length, fmt, ap); > > } > > as->length = l; > > } > > > > /* > > --- 47,68 ---- > > va_list ap) > > { > > size_t l; > > + va_list ap1; > > > > if (fmt == NULL) { > > as->s[0] = 0; > > return; > > } > > > > + va_copy(ap1,ap); > > l = vsnprintf(as->s, as->buffer_length, fmt, ap); > > /* If output is bigger than the buffer, resize and try again. */ > > if (l+1 >= as->buffer_length) { > > __archive_string_ensure(as, l + 1); > > ! l = vsnprintf(as->s, as->buffer_length, fmt, ap1); > > } > > as->length = l; > > + va_end(ap1); > > } > > > > /* > > > > *** lib/libc/stdio/vfprintf.c.orig Mon Aug 23 20:35:43 2004 > > --- lib/libc/stdio/vfprintf.c Tue Aug 24 13:01:45 2004 > > *************** error: > > *** 1237,1242 **** > > --- 1237,1243 ---- > > if (dtoaresult != NULL) > > freedtoa(dtoaresult); > > #endif > > + va_end(orgap); > > if (convbuf != NULL) > > free(convbuf); > > if (__sferror(fp)) > > >Received on Tue Aug 24 2004 - 18:53:58 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:08 UTC