From b6e7a070e71efcdc2e5997861313e7b963c5a3ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Thu, 16 Dec 2010 18:26:06 +0000 Subject: [PATCH] * checks file name length in FindEntry() git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39873 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/ext2/DirectoryIterator.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/add-ons/kernel/file_systems/ext2/DirectoryIterator.cpp b/src/add-ons/kernel/file_systems/ext2/DirectoryIterator.cpp index 14ec08a614..cb87a40c82 100644 --- a/src/add-ons/kernel/file_systems/ext2/DirectoryIterator.cpp +++ b/src/add-ons/kernel/file_systems/ext2/DirectoryIterator.cpp @@ -309,11 +309,13 @@ DirectoryIterator::FindEntry(const char* name, ino_t* _id) ino_t id; status_t status = B_OK; + size_t length = strlen(name); while (status == B_OK) { size_t nameLength = EXT2_NAME_LENGTH; status = Get(buffer, &nameLength, &id); if (status == B_OK) { - if (strncmp(name, buffer, nameLength) == 0) { + if (length == nameLength + && strncmp(name, buffer, nameLength) == 0) { if (_id != NULL) *_id = id; return B_OK;