diff options
author | Jeff King <peff@peff.net> | 2010-04-01 20:03:18 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2010-04-01 23:49:03 -0700 |
commit | c00e657df23d9e83d86a79657ff9061b1c2d357b (patch) | |
tree | 23ca1039d12d63feddaf8cdf84fce692ededb4d5 | |
parent | 890a13a45285ad44858add2ce2f74eb478f549c8 (diff) | |
download | git-c00e657df23d9e83d86a79657ff9061b1c2d357b.tar.gz git-c00e657df23d9e83d86a79657ff9061b1c2d357b.tar.xz |
fix const-correctness of write_sha1_file
These should take const buffers as input data, but zlib's
next_in pointer is not const-correct. Let's fix it at the
zlib level, though, so the cast happens in one obvious
place. This should be safe, as a similar cast is used in
zlib's example code for a const array.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | cache.h | 2 | ||||
-rw-r--r-- | sha1_file.c | 6 |
2 files changed, 4 insertions, 4 deletions
@@ -701,7 +701,7 @@ static inline void *read_sha1_file(const unsigned char *sha1, enum object_type * return read_sha1_file_repl(sha1, type, size, NULL); } extern int hash_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *sha1); -extern int write_sha1_file(void *buf, unsigned long len, const char *type, unsigned char *return_sha1); +extern int write_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *return_sha1); extern int pretend_sha1_file(void *, unsigned long, enum object_type, unsigned char *); extern int force_object_loose(const unsigned char *sha1, time_t mtime); diff --git a/sha1_file.c b/sha1_file.c index a08a9d088..ff6532800 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -2271,7 +2271,7 @@ static int create_tmpfile(char *buffer, size_t bufsiz, const char *filename) } static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen, - void *buf, unsigned long len, time_t mtime) + const void *buf, unsigned long len, time_t mtime) { int fd, ret; unsigned char compressed[4096]; @@ -2307,7 +2307,7 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen, git_SHA1_Update(&c, hdr, hdrlen); /* Then the data itself.. */ - stream.next_in = buf; + stream.next_in = (void *)buf; stream.avail_in = len; do { unsigned char *in0 = stream.next_in; @@ -2342,7 +2342,7 @@ static int write_loose_object(const unsigned char *sha1, char *hdr, int hdrlen, return move_temp_to_file(tmpfile, filename); } -int write_sha1_file(void *buf, unsigned long len, const char *type, unsigned char *returnsha1) +int write_sha1_file(const void *buf, unsigned long len, const char *type, unsigned char *returnsha1) { unsigned char sha1[20]; char hdr[32]; |