summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authornulltoken <emeric.fermas@gmail.com>2011-06-15 16:05:33 +0200
committernulltoken <emeric.fermas@gmail.com>2011-06-15 21:10:10 +0200
commita64bf21bbb5f79d3ac523087a2953a35adbb896f (patch)
tree86daa47b88cc083879eb952c225a8708d677c0af /src
parenta51201cc738eda4d8938672eaa636ac088316df4 (diff)
downloadlibgit2-a64bf21bbb5f79d3ac523087a2953a35adbb896f.tar.gz
blob: Fix git_blob_create_fromfile()
Diffstat (limited to 'src')
-rw-r--r--src/blob.c4
-rw-r--r--src/fileops.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/blob.c b/src/blob.c
index c95d018e2..ceb2c9c44 100644
--- a/src/blob.c
+++ b/src/blob.c
@@ -119,9 +119,9 @@ int git_blob_create_fromfile(git_oid *oid, git_repository *repo, const char *pat
ssize_t read_len;
if (!islnk)
- read_len = gitfo_read(fd, buffer, sizeof(buffer));
+ read_len = gitfo_read(fd, buffer, (size_t)(size < sizeof(buffer) ? size : sizeof(buffer)));
else
- read_len = gitfo_readlink(full_path, buffer, sizeof(buffer));
+ read_len = gitfo_readlink(full_path, buffer, (size_t)size);
if (read_len < 0) {
if (!islnk)
diff --git a/src/fileops.c b/src/fileops.c
index 2a78764c6..2136c913e 100644
--- a/src/fileops.c
+++ b/src/fileops.c
@@ -97,7 +97,7 @@ int gitfo_read(git_file fd, void *buf, size_t cnt)
cnt -= r;
b += r;
}
- return GIT_SUCCESS;
+ return (int)(b - (char *)buf);
}
int gitfo_write(git_file fd, void *buf, size_t cnt)