[Libguestfs] [PATCH] customize: Correctly handle crypt(3) returning NULL.

Richard W.M. Jones rjones at redhat.com
Mon Jan 29 15:47:03 UTC 2018


In particular glibc's crypt will return NULL / errno == ENOSYS and
other implementations might do that in future too.
---
 customize/crypt-c.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/customize/crypt-c.c b/customize/crypt-c.c
index d5425cfaa..e358018cd 100644
--- a/customize/crypt-c.c
+++ b/customize/crypt-c.c
@@ -21,6 +21,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
+#include <errno.h>
 
 #if HAVE_CRYPT_H
 #include <crypt.h>
@@ -29,6 +30,7 @@
 #include <caml/alloc.h>
 #include <caml/memory.h>
 #include <caml/mlvalues.h>
+#include <caml/unixsupport.h>
 
 #pragma GCC diagnostic ignored "-Wmissing-prototypes"
 
@@ -44,6 +46,8 @@ virt_customize_crypt (value keyv, value saltv)
    * is not thread safe.
    */
   r = crypt (String_val (keyv), String_val (saltv));
+  if (r == NULL)
+    unix_error (errno, (char *) "crypt", Nothing);
   rv = caml_copy_string (r);
 
   CAMLreturn (rv);
-- 
2.13.2




More information about the Libguestfs mailing list