X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=fs%2Fcifs%2Freaddir.c;h=22557716f9afb48c032d9c7759706183f01b6a9f;hb=de2d3dbd17e6bb60bde4632ce1c7df063b073934;hp=39170cffcad8289a1ca92283aa6435c33b20f0e5;hpb=966ca9234754ece58870075972ef103e354de075;p=powerpc.git diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c index 39170cffca..22557716f9 100644 --- a/fs/cifs/readdir.c +++ b/fs/cifs/readdir.c @@ -409,10 +409,15 @@ static char *nxt_dir_entry(char *old_entry, char *end_of_smb) cFYI(1,("new entry %p old entry %p",new_entry,old_entry)); /* validate that new_entry is not past end of SMB */ if(new_entry >= end_of_smb) { - cFYI(1,("search entry %p began after end of SMB %p old entry %p", - new_entry,end_of_smb,old_entry)); + cERROR(1, + ("search entry %p began after end of SMB %p old entry %p", + new_entry, end_of_smb, old_entry)); return NULL; - } else + } else if (new_entry + sizeof(FILE_DIRECTORY_INFO) > end_of_smb) { + cERROR(1,("search entry %p extends after end of SMB %p", + new_entry, end_of_smb)); + return NULL; + } else return new_entry; }