From 90685fb7992fd77789b3e0d7e23b39a68dc883f7 Mon Sep 17 00:00:00 2001 From: Tyler Dauwalder Date: Fri, 12 Sep 2003 08:49:12 +0000 Subject: [PATCH] Per POSIX, now returns B_BAD_VALUE if read position is negative (thanks Axel :-). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4660 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/add-ons/kernel/file_systems/udf/Icb.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/add-ons/kernel/file_systems/udf/Icb.cpp b/src/add-ons/kernel/file_systems/udf/Icb.cpp index fedf284a53..a4dda56040 100644 --- a/src/add-ons/kernel/file_systems/udf/Icb.cpp +++ b/src/add-ons/kernel/file_systems/udf/Icb.cpp @@ -57,9 +57,9 @@ Icb::Read(off_t pos, void *buffer, size_t *length, uint32 *block) DEBUG_INIT_ETC(CF_PUBLIC | CF_HIGH_VOLUME, "Icb", ("pos: %lld, buffer: %p, length: (%p)->%ld", pos, buffer, length, (length ? *length : 0))); - if (!buffer || !length) - RETURN(B_BAD_VALUE); - + if (!buffer || !length || pos < 0) + RETURN(B_BAD_VALUE); + if (uint64(pos) >= Length()) { *length = 0; return B_OK;