Make the rest of commands work from a subdirectory.
[gitweb.git] / csum-file.c
index c8c7369152cd2b744aae488eb794c12ffbdfe9b9..c66b9eb10bfad8fee8b7b779cbb4a8e7c86480af 100644 (file)
@@ -45,6 +45,7 @@ int sha1close(struct sha1file *f, unsigned char *result, int update)
                sha1flush(f, 20);
        if (close(f->fd))
                die("%s: sha1 file error on close (%s)", f->name, strerror(errno));
+       free(f);
        return 0;
 }
 
@@ -86,7 +87,7 @@ struct sha1file *sha1create(const char *fmt, ...)
                die("you wascally wabbit, you");
        f->namelen = len;
 
-       fd = open(f->name, O_CREAT | O_EXCL | O_WRONLY, 0644);
+       fd = open(f->name, O_CREAT | O_EXCL | O_WRONLY, 0666);
        if (fd < 0)
                die("unable to open %s (%s)", f->name, strerror(errno));
        f->fd = fd;