summaryrefslogtreecommitdiff
path: root/sys/shm/shmpipe.c
diff options
context:
space:
mode:
authorBlake Tregre <blake@oblong.com>2012-11-08 13:22:41 -0800
committerOlivier CrĂȘte <olivier.crete@collabora.com>2013-02-28 12:35:45 -0500
commitc175c6b3d083f6bf3798cd172b38c4979b067c73 (patch)
tree6006cfb6cc5bd9de2c45b67b8c4392819b7708fe /sys/shm/shmpipe.c
parentb6f50c51f3adc487d24650ce9d55f4d313ea2fd3 (diff)
downloadgstreamer-plugins-bad-c175c6b3d083f6bf3798cd172b38c4979b067c73.tar.gz
shm: use O_CLOEXEC where appropriate in shmpipe
https://bugzilla.gnome.org/show_bug.cgi?id=684339
Diffstat (limited to 'sys/shm/shmpipe.c')
-rw-r--r--sys/shm/shmpipe.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/sys/shm/shmpipe.c b/sys/shm/shmpipe.c
index 676453b37..6c7b80be7 100644
--- a/sys/shm/shmpipe.c
+++ b/sys/shm/shmpipe.c
@@ -759,6 +759,7 @@ sp_client_open (const char *path)
{
ShmPipe *self = spalloc_new (ShmPipe);
struct sockaddr_un sock_un;
+ int flags;
memset (self, 0, sizeof (ShmPipe));
@@ -768,6 +769,13 @@ sp_client_open (const char *path)
if (self->main_socket < 0)
goto error;
+ flags = fcntl (self->main_socket, F_GETFL, 0);
+ if (flags < 0)
+ goto error;
+
+ if (fcntl (self->main_socket, F_SETFL, flags | FD_CLOEXEC) < 0)
+ goto error;
+
sock_un.sun_family = AF_UNIX;
strncpy (sock_un.sun_path, path, sizeof (sock_un.sun_path) - 1);