From b99e6cbd055fbf8664ee510c2e60854d10c69d51 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Thu, 30 Jun 2011 11:52:50 -0700 Subject: do not rely on implementation-specific behavior for allocation C compilers are free to release stack-allocated memory once it exits the scope of any block (even though most do not). Thanks to Leonid Evdokimov for pointing this out. --- nodelay.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nodelay.c b/nodelay.c index d24e1bf..265b0d6 100644 --- a/nodelay.c +++ b/nodelay.c @@ -72,11 +72,13 @@ int socket(int domain, int type, int protocol) int setsockopt(int sockfd, int level, int optname, const void *poptval, socklen_t optlen) { + int optval; + if (unlikely(!real_socket)) nodelay_init(); if (level == IPPROTO_TCP && optname == TCP_NODELAY) { - int optval = nodelay_value; + optval = nodelay_value; poptval = &optval; optlen = sizeof(optval); -- cgit v1.2.3-24-ge0c7