Add safe_strndup call.
authorRichard Jones <rjones@redhat.com>
Tue, 17 Aug 2010 10:26:26 +0000 (11:26 +0100)
committerRichard Jones <rjones@redhat.com>
Thu, 26 Aug 2010 21:34:11 +0000 (22:34 +0100)
(cherry picked from commit 3905cc7ab496549b6ca0a0f67ec61d1d16968c33)

src/guestfs-internal.h
src/guestfs.c

index 12ca0ec..d0fc3ca 100644 (file)
@@ -141,6 +141,7 @@ extern void guestfs_perrorf (guestfs_h *g, const char *fs, ...)
   __attribute__((format (printf,2,3)));
 extern void *guestfs_safe_realloc (guestfs_h *g, void *ptr, int nbytes);
 extern char *guestfs_safe_strdup (guestfs_h *g, const char *str);
+extern char *guestfs_safe_strndup (guestfs_h *g, const char *str, size_t n);
 extern void *guestfs_safe_memdup (guestfs_h *g, void *ptr, size_t size);
 extern int guestfs___set_busy (guestfs_h *g);
 extern int guestfs___end_busy (guestfs_h *g);
@@ -157,6 +158,7 @@ extern int guestfs___accept_from_daemon (guestfs_h *g);
 #define safe_malloc guestfs_safe_malloc
 #define safe_realloc guestfs_safe_realloc
 #define safe_strdup guestfs_safe_strdup
+#define safe_strndup guestfs_safe_strndup
 #define safe_memdup guestfs_safe_memdup
 
 #endif /* GUESTFS_INTERNAL_H_ */
index c54462d..871d713 100644 (file)
@@ -397,6 +397,14 @@ guestfs_safe_strdup (guestfs_h *g, const char *str)
   return s;
 }
 
+char *
+guestfs_safe_strndup (guestfs_h *g, const char *str, size_t n)
+{
+  char *s = strndup (str, n);
+  if (!s) g->abort_cb ();
+  return s;
+}
+
 void *
 guestfs_safe_memdup (guestfs_h *g, void *ptr, size_t size)
 {