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);
}


_______________________________________________
OpenAFS-devel mailing list
[email protected]
https://lists.openafs.org/mailman/listinfo/openafs-devel

Reply via email to