From aa28ced44e0460fb01406aa17996d863ffe3cbf6 Mon Sep 17 00:00:00 2001 From: Philip Withnall Date: Tue, 26 Nov 2013 11:11:21 +0000 Subject: [PATCH] gunixfdlist: Fix a potential NULL pointer dereference In the case that (n_fds == 0 && fds == NULL), memcpy() would be called against a NULL src pointer. Even though the number of bytes to copy is 0, avoid the possibility of a crash by only calling if fds is non-NULL. Found by scan-build. https://bugzilla.gnome.org/show_bug.cgi?id=113075 --- gio/gunixfdlist.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gio/gunixfdlist.c b/gio/gunixfdlist.c index 4898202..7d5d732 100644 --- a/gio/gunixfdlist.c +++ b/gio/gunixfdlist.c @@ -183,7 +183,8 @@ g_unix_fd_list_new_from_array (const gint *fds, list->priv->fds = g_new (gint, n_fds + 1); list->priv->nfd = n_fds; - memcpy (list->priv->fds, fds, sizeof (gint) * n_fds); + if (n_fds > 0) + memcpy (list->priv->fds, fds, sizeof (gint) * n_fds); list->priv->fds[n_fds] = -1; return list; -- 2.7.4