libadmin: read returns an ssize_t, not a size_t
authorSimon Wilkinson <sxw@your-file-system.com>
Fri, 30 Mar 2012 18:14:38 +0000 (19:14 +0100)
committerDerrick Brashear <shadow@dementix.org>
Sat, 7 Apr 2012 12:06:43 +0000 (05:06 -0700)
size_t is unsigned, and therefore can never be less than 0. Using it as
a return code from read() means that we never catch read errors. read()
is defined as returning ssize_t, so just use this to capture its return
code.

Caught by clang's new error messages

Change-Id: Ibf61119dec2c64fd4b1e16e6ef02178e427116f0
Reviewed-on: http://gerrit.openafs.org/7075
Reviewed-by: Derrick Brashear <shadow@dementix.org>
Tested-by: Derrick Brashear <shadow@dementix.org>

src/libadmin/bos/afs_bosAdmin.c

index dd17a7c..cbcf1df 100644 (file)
@@ -2705,7 +2705,7 @@ bos_ExecutableCreate(const void *serverHandle, const char *sourceFile,
 
     while (1) {
        char tbuffer[512];
-       size_t len;
+       ssize_t len;
        len = read(fd, tbuffer, sizeof(tbuffer));
        if (len < 0) {
            tst = ADMBOSCANTREADSOURCEFILE;