[Libsysio-commit] HEAD: libsysio/src getdirentries.c
Brought to you by:
lward
From: Lee W. <lw...@us...> - 2007-03-14 20:16:34
|
Update of /cvsroot/libsysio/libsysio/src In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv23822 Modified Files: getdirentries.c Log Message: Cray SPR 734717 reports (as the 2nd bug discussed) that the return and errno are incorrect if a bad file descriptor is passed to getdirentries(). Fixed, using supplied patch. Index: getdirentries.c =================================================================== RCS file: /cvsroot/libsysio/libsysio/src/getdirentries.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -w -b -B -p -r1.21 -r1.22 --- getdirentries.c 13 Mar 2007 23:41:24 -0000 1.21 +++ getdirentries.c 14 Mar 2007 20:16:31 -0000 1.22 @@ -98,8 +98,9 @@ PREPEND(_, SYSIO_INTERFACE_NAME(getdiren SYSIO_INTERFACE_ENTER; fil = _sysio_fd_find(fd); - if (!(fil && fil->f_ino)) - return -EBADF; + if (!(fil && fil->f_ino)) { + SYSIO_INTERFACE_RETURN(-1, -EBADF); + } cc = filldirents(fil, buf, nbytes, basep); SYSIO_INTERFACE_RETURN(cc < 0 ? -1 : cc, cc < 0 ? (int )cc : 0); @@ -168,8 +169,9 @@ SYSIO_INTERFACE_NAME(getdirentries)(int SYSIO_INTERFACE_ENTER; fil = _sysio_fd_find(fd); - if (!(fil && fil->f_ino)) - return -EBADF; + if (!(fil && fil->f_ino)) { + SYSIO_INTERFACE_RETURN(-1, -EBADF); + } count = cc = filldirents(fil, buf, nbytes, &b); d64p = (void *)buf; |