X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Ffb-file.c;h=ac25dcf3e954b1c663dcc5b288ba33625302abd4;hb=04294f573be8073e305f70621e6e74e2440f7f24;hp=d89522ef53c982ba6bf3cf6303fbfe55c4178af2;hpb=1571781022499a9d0c32d249f89945d034d1cbff;p=libucw.git diff --git a/lib/fb-file.c b/lib/fb-file.c index d89522ef..ac25dcf3 100644 --- a/lib/fb-file.c +++ b/lib/fb-file.c @@ -64,13 +64,15 @@ static void bfd_close(struct fastbuf *f) { close(f->fd); + if (f->is_temp_file && unlink(f->name) < 0) + die("unlink(%s): %m", f->name); } static struct fastbuf * bfdopen_internal(int fd, uns buflen, byte *name) { int namelen = strlen(name) + 1; - struct fastbuf *b = xmalloc(sizeof(struct fastbuf) + buflen + namelen); + struct fastbuf *b = xmalloc_zero(sizeof(struct fastbuf) + buflen + namelen); b->buflen = buflen; b->buffer = (char *)(b+1); @@ -78,7 +80,6 @@ bfdopen_internal(int fd, uns buflen, byte *name) b->bufend = b->buffer + buflen; b->name = b->bufend; strcpy(b->name, name); - b->pos = b->fdpos = 0; b->fd = fd; b->refill = bfd_refill; b->spout = bfd_spout;