From 6c8afe495b2cb6e2069942d7c006f6660e186690 Mon Sep 17 00:00:00 2001 From: Michael Haggerty Date: Fri, 3 Jul 2015 15:59:32 +0200 Subject: [PATCH] strbuf: strbuf_read_file() should return ssize_t It is currently declared to return int, which could overflow for large files. Signed-off-by: Michael Haggerty Signed-off-by: Junio C Hamano --- strbuf.c | 5 +++-- strbuf.h | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/strbuf.c b/strbuf.c index 88cafd4a70..b4da9f5d05 100644 --- a/strbuf.c +++ b/strbuf.c @@ -481,9 +481,10 @@ int strbuf_getwholeline_fd(struct strbuf *sb, int fd, int term) return 0; } -int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint) +ssize_t strbuf_read_file(struct strbuf *sb, const char *path, size_t hint) { - int fd, len; + int fd; + ssize_t len; fd = open(path, O_RDONLY); if (fd < 0) diff --git a/strbuf.h b/strbuf.h index 1883494ca3..1ea9d0bdeb 100644 --- a/strbuf.h +++ b/strbuf.h @@ -364,7 +364,7 @@ extern ssize_t strbuf_read(struct strbuf *, int fd, size_t hint); * Read the contents of a file, specified by its path. The third argument * can be used to give a hint about the file size, to avoid reallocs. */ -extern int strbuf_read_file(struct strbuf *sb, const char *path, size_t hint); +extern ssize_t strbuf_read_file(struct strbuf *sb, const char *path, size_t hint); /** * Read the target of a symbolic link, specified by its path. The third -- 2.11.4.GIT