From ffdaa11d3c5bfad1ebfcfd3ae38ed3d833ba719a Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Fri, 14 Aug 2009 18:38:05 +0000 Subject: [PATCH] cdda_read_dir(): Removed user buffer handling. We're only getting kernel buffers. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32385 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../file_systems/cdda/kernel_interface.cpp | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp b/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp index 690dc996ca..8593ec67c8 100644 --- a/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp +++ b/src/add-ons/kernel/file_systems/cdda/kernel_interface.cpp @@ -1852,25 +1852,21 @@ cdda_read_dir(fs_volume* _volume, fs_vnode* _node, void* _cookie, break; } - struct dirent entry; - entry.d_dev = volume->FSVolume()->id; - entry.d_ino = childNode->ID(); - entry.d_reclen = strlen(name) + sizeof(struct dirent); + buffer->d_dev = volume->FSVolume()->id; + buffer->d_ino = childNode->ID(); + buffer->d_reclen = strlen(name) + sizeof(struct dirent); - if (entry.d_reclen > bufferSize) { + if (buffer->d_reclen > bufferSize) { if (count == 0) return ENOBUFS; break; } - if (user_memcpy(buffer, &entry, sizeof(struct dirent) - 1) != B_OK - || user_strlcpy(buffer->d_name, name, - bufferSize + 1 - sizeof(struct dirent)) < B_OK) - return B_BAD_ADDRESS; + strcpy(buffer->d_name, name); - buffer = (struct dirent*)((uint8*)buffer + entry.d_reclen); - bufferSize -= entry.d_reclen; + bufferSize -= buffer->d_reclen; + buffer = (struct dirent*)((uint8*)buffer + buffer->d_reclen); count++; cookie->current = nextChildNode;