]> git.pond.sub.org Git - empserver/commitdiff
(ef_extend): free allocated tmpobj before early returns as well.
authorMarc Olzheim <marcolz@stack.nl>
Thu, 16 Dec 2004 12:29:41 +0000 (12:29 +0000)
committerMarc Olzheim <marcolz@stack.nl>
Thu, 16 Dec 2004 12:29:41 +0000 (12:29 +0000)
src/lib/common/file.c

index 48b3c8ad25304a5e41fa289a0ebdc501387edd96..9d286d1d009c77b131e27cb5b6848c067362ca3d 100644 (file)
@@ -299,6 +299,7 @@ ef_extend(int type, int count)
     if ((r = lseek(ep->fd, ep->fids * ep->size, SEEK_SET)) < 0) {
        logerror("ef_extend: %s +#%d lseek(%d, %d, SEEK_SET) -> %d",
                 ep->name, count, ep->fd, ep->fids * ep->size, r);
     if ((r = lseek(ep->fd, ep->fids * ep->size, SEEK_SET)) < 0) {
        logerror("ef_extend: %s +#%d lseek(%d, %d, SEEK_SET) -> %d",
                 ep->name, count, ep->fd, ep->fids * ep->size, r);
+       free(tmpobj);
        return 0;
     }
     for (cur = ep->fids; cur < max; cur++) {
        return 0;
     }
     for (cur = ep->fids; cur < max; cur++) {
@@ -307,6 +308,7 @@ ef_extend(int type, int count)
        if ((r = write(ep->fd, tmpobj, ep->size)) != ep->size) {
            logerror("ef_extend: %s +#%d write(%d, %p, %d) -> %d",
                     ep->name, count, ep->fd, tmpobj, ep->size, r);
        if ((r = write(ep->fd, tmpobj, ep->size)) != ep->size) {
            logerror("ef_extend: %s +#%d write(%d, %p, %d) -> %d",
                     ep->name, count, ep->fd, tmpobj, ep->size, r);
+           free(tmpobj);
            return 0;
        }
     }
            return 0;
        }
     }