diff -ur pvfs-kernel-1.6.3-pre1-linux-2.4/libkpvfs/klib/mgrcomm.c pvfs-kernel-1.6.3-pre1-linux-2.4-fix/libkpvfs/klib/mgrcomm.c --- pvfs-kernel-1.6.3-pre1-linux-2.4/libkpvfs/klib/mgrcomm.c Tue Jun 8 16:03:46 2004 +++ pvfs-kernel-1.6.3-pre1-linux-2.4-fix/libkpvfs/klib/mgrcomm.c Tue Jun 8 16:15:00 2004 @@ -205,6 +205,15 @@ if (!newconn) badmgrfd(fd); return(-EIO); } + + if (ack_p->eno > 1000) /* serious error -- errno's > 1000 will be interpreted as a pointer upstream - must be garbage on manager anyway */ + { + PERROR("The PVFS Manager returned an unreasonable errno [%d] on reqest type [%d] for data [%s]. Something must be wrong here.\n", ack_p->eno, req_p->type, data_p == NULL ? "NONE" : data_p); + Close(fd); + if (!newconn) badmgrfd(fd); + return(-EIO); + } + /* not going to close connection, must save the state! */ if (newconn) { err = addmgrinfo(saddr_p, fd);