[OpenBIOS] [PATCH 3/3] Fix getprop return value

Andreas Färber andreas.faerber at web.de
Fri Oct 8 15:49:05 CEST 2010


According to IEEE 1275, "Size is either the actual size of the property,
or –1 if name does not exist."

The property might be larger than the client's buffer, so don't dup
the min used for writing into the buffer but the original proplen value.
Insert a comment to show what's going on.

Signed-off-by: Andreas Färber <andreas.faerber at web.de>
---
 forth/system/ciface.fs |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/forth/system/ciface.fs b/forth/system/ciface.fs
index 54fadc9..27a1deb 100644
--- a/forth/system/ciface.fs
+++ b/forth/system/ciface.fs
@@ -97,8 +97,9 @@ external
   over cstrlen swap
   ?phandle get-package-property if 2drop -1 exit then
   ( buflen buf prop proplen )
-  >r swap rot r> min
-  dup >r move r>
+  >r swap rot r>
+  ( prop buf buflen proplen )
+  dup >r min move r>
 ;
 
 \ 1 OK, 0 no more prop, -1 prev invalid
-- 
1.7.3




More information about the OpenBIOS mailing list