On Wednesday, April 20, 2005 03:49:29 PM -0700 [EMAIL PROTECTED] wrote:
afs_HandlePioctl() returns E2BIG when you pass it a buffer which isn't large enough to hold the output data from the pioctl call. E2BIG translates to "Argument List Too Long" which isn't describing the right problem at all. EINVAL fits better. There may be an even more appropriate return (EOVERFLOW?) but E2BIG definitely isn't the right one.
--- src/afs/afs_pioctl.c~ Wed Apr 20 15:48:28 2005 +++ src/afs/afs_pioctl.c Wed Apr 20 15:49:05 2005 @@ -1117,7 +1117,7 @@
/* Do all range checking before continuing */ if (inSize > MAXPIOCTLTOKENLEN || inSize < 0 || ablob->out_size < 0) - return E2BIG; + return EINVAL;
/* Note that we use osi_Alloc for large allocs and osi_AllocLargeSpace for small ones */ if (inSize > AFS_LRALLOCSIZ) { @@ -1167,7 +1167,7 @@ } if (code == 0 && ablob->out_size > 0) { if (outSize > ablob->out_size) { - code = E2BIG; /* data wont fit in user buffer */ + code = EINVAL; /* data wont fit in user buffer */ } else if (outSize) { AFS_COPYOUT(outData, ablob->out, outSize, code); }
This seems a gratuitous change to me. Error codes always need to be interpreted in context, and pioctl has ~always returned E2BIG to indicate that the input or output arguments were too large.
-- Jeffrey T. Hutzelman (N3NHS) <[EMAIL PROTECTED]> Sr. Research Systems Programmer School of Computer Science - Research Computing Facility Carnegie Mellon University - Pittsburgh, PA
_______________________________________________ OpenAFS-devel mailing list [email protected] https://lists.openafs.org/mailman/listinfo/openafs-devel
