Fixed a bug that would have considered /boot/trashy_file be in /boot/trash.

Spotted by Rene, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39805 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Houdoin 2010-12-10 15:26:27 +00:00
parent 1e4538de6f
commit 784263e28a
2 changed files with 16 additions and 10 deletions

View File

@ -131,13 +131,16 @@ bool DeskbarView::_EntryInTrash(const entry_ref* entry)
BPath trashPath;
BPath entryPath(entry);
BVolume volume(entry->device);
if (volume.InitCheck() == B_OK) {
find_directory(B_TRASH_DIRECTORY, &trashPath, false, &volume);
if (strncmp(entryPath.Path(), trashPath.Path(),
strlen(trashPath.Path())) == 0)
if (volume.InitCheck() == B_OK
&& find_directory(B_TRASH_DIRECTORY, &trashPath, false,
&volume) == B_OK) {
char path[PATH_MAX];
strncpy(path, trashPath.Path(), sizeof(path));
strncat(path, "/", sizeof(path));
if (strncmp(entryPath.Path(), path, strlen(path)) == 0)
return true;
}
return false;
}
@ -252,7 +255,7 @@ DeskbarView::MessageReceived(BMessage* message)
int32 what;
dev_t device;
ino_t directory;
const char *name;
const char *name;
entry_ref ref;
message->FindInt32("opcode", &what);
message->FindInt32("device", &device);

View File

@ -638,10 +638,13 @@ MailDaemonApp::_IsEntryInTrash(BEntry& entry)
BPath trashPath;
BPath entryPath(&entry);
BVolume volume(ref.device);
if (volume.InitCheck() == B_OK) {
find_directory(B_TRASH_DIRECTORY, &trashPath, false, &volume);
if (strncmp(entryPath.Path(), trashPath.Path(),
strlen(trashPath.Path())) == 0)
if (volume.InitCheck() == B_OK
&& find_directory(B_TRASH_DIRECTORY, &trashPath,
false, &volume) == B_OK) {
char path[PATH_MAX];
strncpy(path, trashPath.Path(), sizeof(path));
strncat(path, "/", sizeof(path));
if (strncmp(entryPath.Path(), path, strlen(path)) == 0)
return true;
}