viced cap fetchdata len to avoid negative
authorDerrick Brashear <shadow@dementia.org>
Fri, 25 Sep 2009 07:15:40 +0000 (03:15 -0400)
committerDerrick Brashear <shadow|account-1000005@unknown>
Sat, 26 Sep 2009 10:39:47 +0000 (03:39 -0700)
when trying to read from a short or zero length file,
it's possible for sanity checking to knock the length below
zero. set a floor at zero.

Reviewed-on: http://gerrit.openafs.org/494
Reviewed-by: Jeffrey Altman <jaltman@openafs.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
Reviewed-by: Derrick Brashear <shadow@dementia.org>

src/viced/afsfileprocs.c

index 04a68b3..e6f8f7f 100644 (file)
@@ -7027,8 +7027,9 @@ FetchData_RXStyle(Volume * volptr, Vnode * targetptr,
        Len = 0;
     }
 
-    if (Pos + Len > tlen)
-       Len = tlen - Pos;       /* get length we should send */
+    if (Pos + Len > tlen) /* get length we should send */
+       Len = ((tlen - Pos) < 0) ? 0 : tlen - Pos;
+
     (void)FDH_SEEK(fdP, Pos, 0);
     {
        afs_int32 high, low;