On Fri, May 13, 2011 at 08:37:57AM +0200, Hilko Bengen wrote:
I believe that "Required key not available" refers to a
cryptographic
key which makes no sense here.
hivex_root() checks if the root offset field points to an invalid
position in the hive file and fails if this is not the case. I think
"Bad address" is a good match.
---
lib/hivex.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/lib/hivex.c b/lib/hivex.c
index 7715520..e730547 100644
--- a/lib/hivex.c
+++ b/lib/hivex.c
@@ -559,7 +559,7 @@ hivex_root (hive_h *h)
{
hive_node_h ret = h->rootoffs;
if (!IS_VALID_BLOCK (h, ret)) {
- errno = ENOKEY;
+ errno = EFAULT;
return 0;
}
return ret;
--
1.7.5.1
Unfortunately this is documented in the API and therefore can't
be changed.
A bigger problem is that some platforms lack ENOKEY (it's not defined
by POSIX). I think Mac OS X was one. However that's a separate
problem for those platforms.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming blog:
http://rwmj.wordpress.com
Fedora now supports 80 OCaml packages (the OPEN alternative to F#)
http://cocan.org/getting_started_with_ocaml_on_red_hat_and_fedora