From ee576238093c7205aeb8a153caa1b1d1bd881821 Mon Sep 17 00:00:00 2001
From: Eric Wong <e@80x24.org>
Date: Wed, 6 May 2015 21:22:09 +0000
Subject: [PATCH] ext/socket/ancdata.c (bsock_recvmsg_internal): GC guard

The control buffer may be used throughout the function, so
prevent the string from being lost to GC.

* ext/socket/ancdata.c (bsock_recvmsg_internal): GC guard
---
 ext/socket/ancdata.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/ext/socket/ancdata.c b/ext/socket/ancdata.c
index f0dbb2b..3eaed1c 100644
--- a/ext/socket/ancdata.c
+++ b/ext/socket/ancdata.c
@@ -1711,6 +1711,7 @@ bsock_recvmsg_internal(int argc, VALUE *argv, VALUE sock, int nonblock)
                 discard_cmsg(cmh, msg_end, (flags & MSG_PEEK) != 0);
             rb_ary_push(ret, ctl);
         }
+        RB_GC_GUARD(ctl_str);
     }
 #endif
 
-- 
EW

