Code

Ensure return value from xread() is always stored into an ssize_t
authorJohan Herland <johan@herland.net>
Tue, 15 May 2007 12:49:22 +0000 (14:49 +0200)
committerJunio C Hamano <junkio@cox.net>
Wed, 16 May 2007 04:16:03 +0000 (21:16 -0700)
This patch fixes all calls to xread() where the return value is not
stored into an ssize_t. The patch should not have any effect whatsoever,
other than putting better/more appropriate type names on variables.

Signed-off-by: Johan Herland <johan@herland.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
12 files changed:
builtin-apply.c
builtin-bundle.c
builtin-fetch--tool.c
builtin-unpack-objects.c
combine-diff.c
copy.c
diff.c
imap-send.c
index-pack.c
pkt-line.c
sha1_file.c
ssh-upload.c

index 8b8705a6c056f160940566ef2c851a09cbd98532..0399743c4e2288a0812faeea92c07a5f6a13fccc 100644 (file)
@@ -185,7 +185,7 @@ static void *read_patch_file(int fd, unsigned long *sizep)
        void *buffer = xmalloc(alloc);
 
        for (;;) {
-               int nr = alloc - size;
+               ssize_t nr = alloc - size;
                if (nr < 1024) {
                        alloc += CHUNKSIZE;
                        buffer = xrealloc(buffer, alloc);
@@ -1468,7 +1468,7 @@ static int read_old_data(struct stat *st, const char *path, char **buf_p, unsign
                        return error("unable to open %s", path);
                got = 0;
                for (;;) {
-                       int ret = xread(fd, buf + got, size - got);
+                       ssize_t ret = xread(fd, buf + got, size - got);
                        if (ret <= 0)
                                break;
                        got += ret;
index d1635a0a6b009ecb6706084828abd0e3928f2b8d..306ad29597dbf9002a44ba509c2e9d7a737b159d 100644 (file)
@@ -48,7 +48,7 @@ static int read_string(int fd, char *buffer, int size)
 {
        int i;
        for (i = 0; i < size - 1; i++) {
-               int count = xread(fd, buffer + i, 1);
+               ssize_t count = xread(fd, buffer + i, 1);
                if (count < 0)
                        return error("Read error: %s", strerror(errno));
                if (count == 0) {
index 2065466f272dba506e6c34f16b12e4726996e0ec..12adb3833cd60771f8e63b2ebaecff3769fa74e2 100644 (file)
@@ -6,11 +6,11 @@
 
 static char *get_stdin(void)
 {
-       int offset = 0;
+       size_t offset = 0;
        char *data = xmalloc(CHUNK_SIZE);
 
        while (1) {
-               int cnt = xread(0, data + offset, CHUNK_SIZE);
+               ssize_t cnt = xread(0, data + offset, CHUNK_SIZE);
                if (cnt < 0)
                        die("error reading standard input: %s",
                            strerror(errno));
index 2bbda67fabfcc5292313c4ac6c462cd8911d9128..a6ff62fd8c66f075550e01718acf56d90b44d4bb 100644 (file)
@@ -34,7 +34,7 @@ static void *fill(int min)
                offset = 0;
        }
        do {
-               int ret = xread(0, buffer + len, sizeof(buffer) - len);
+               ssize_t ret = xread(0, buffer + len, sizeof(buffer) - len);
                if (ret <= 0) {
                        if (!ret)
                                die("early EOF");
index cff9c5dc426cae9bd517614e00739edc4b40d635..ea3ca5f950561a92fdd3be1a4ee4bbd726656118 100644 (file)
@@ -714,7 +714,7 @@ static void show_patch_diff(struct combine_diff_path *elem, int num_parent,
                        result_size = len;
                        result = xmalloc(len + 1);
                        while (sz < len) {
-                               int done = xread(fd, result+sz, len-sz);
+                               ssize_t done = xread(fd, result+sz, len-sz);
                                if (done == 0)
                                        break;
                                if (done < 0)
diff --git a/copy.c b/copy.c
index 08a3d388a4c312fca18558b2b8e5dcf027c7afaf..d340bb253ec35af379c29e71f384e15d6822fb9a 100644 (file)
--- a/copy.c
+++ b/copy.c
@@ -3,10 +3,9 @@
 int copy_fd(int ifd, int ofd)
 {
        while (1) {
-               int len;
                char buffer[8192];
                char *buf = buffer;
-               len = xread(ifd, buffer, sizeof(buffer));
+               ssize_t len = xread(ifd, buffer, sizeof(buffer));
                if (!len)
                        break;
                if (len < 0) {
diff --git a/diff.c b/diff.c
index 8354e71e0707960f7a1094e288bea0fac83ec6b8..33297aa8a7fd8f1c7f4711a9807b0b497d3de2ae 100644 (file)
--- a/diff.c
+++ b/diff.c
@@ -1411,7 +1411,7 @@ static int populate_from_stdin(struct diff_filespec *s)
 #define INCREMENT 1024
        char *buf;
        unsigned long size;
-       int got;
+       ssize_t got;
 
        size = 0;
        buf = NULL;
index 84df2fabb7f91d30f7617dd07202ed916c5f8eb1..4283a4acdaf28a8edc2f595e6137cc396f4988dc 100644 (file)
@@ -224,7 +224,7 @@ socket_perror( const char *func, Socket_t *sock, int ret )
 static int
 socket_read( Socket_t *sock, char *buf, int len )
 {
-       int n = xread( sock->fd, buf, len );
+       ssize_t n = xread( sock->fd, buf, len );
        if (n <= 0) {
                socket_perror( "read", sock, n );
                close( sock->fd );
index b9da19f55ba522d8e09c51f9413adf8d799484e9..58c4a9c41dd7a05b86d40e6eeee33ba0a3fb6c4f 100644 (file)
@@ -82,7 +82,7 @@ static void *fill(int min)
                die("cannot fill %d bytes", min);
        flush();
        do {
-               int ret = xread(input_fd, input_buffer + input_len,
+               ssize_t ret = xread(input_fd, input_buffer + input_len,
                                sizeof(input_buffer) - input_len);
                if (ret <= 0) {
                        if (!ret)
index b4cb7e2756dcc52c17aebf4c0fc6adc7b415ef3c..b60526869a38bd20f800c275f7b42390c8bea1ee 100644 (file)
@@ -65,10 +65,10 @@ void packet_write(int fd, const char *fmt, ...)
 
 static void safe_read(int fd, void *buffer, unsigned size)
 {
-       int n = 0;
+       size_t n = 0;
 
        while (n < size) {
-               int ret = xread(fd, (char *) buffer + n, size - n);
+               ssize_t ret = xread(fd, (char *) buffer + n, size - n);
                if (ret < 0)
                        die("read error (%s)", strerror(errno));
                if (!ret)
index 32244d704e1c747780aed461bb78cf4a72199f18..be991ed22acb0c84141474360f345d51ccc594be 100644 (file)
@@ -2276,7 +2276,7 @@ int read_pipe(int fd, char** return_buf, unsigned long* return_size)
 {
        char* buf = *return_buf;
        unsigned long size = *return_size;
-       int iret;
+       ssize_t iret;
        unsigned long off = 0;
 
        do {
index 2f045727875707198dd1763d75c9e8c7406e9042..498d41e19b5756c82ef8e0ead779f40812f84227 100644 (file)
@@ -86,7 +86,7 @@ static int serve_ref(int fd_in, int fd_out)
 
 static void service(int fd_in, int fd_out) {
        char type;
-       int retval;
+       ssize_t retval;
        do {
                retval = xread(fd_in, &type, 1);
                if (retval < 1) {