From 61269bbd499f430b081a04ff2173bbb2e6e57cd7 Mon Sep 17 00:00:00 2001 From: Guillaume Delacour Date: Mon, 7 Dec 2015 00:53:14 +0100 Subject: Define IOV_MAX for GNU and replace PATH_MAX by dynamic alloc --- memcached.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/memcached.c b/memcached.c index ff1af50..0bdaf3c 100644 --- a/memcached.c +++ b/memcached.c @@ -50,7 +50,7 @@ /* FreeBSD 4.x doesn't have IOV_MAX exposed. */ #ifndef IOV_MAX -#if defined(__FreeBSD__) || defined(__APPLE__) +#if defined(__FreeBSD__) || defined(__APPLE__) || defined(__GNU__) # define IOV_MAX 1024 #endif #endif @@ -5712,12 +5712,15 @@ int main (int argc, char **argv) { /* create the listening socket, bind it, and init */ if (settings.socketpath == NULL) { const char *portnumber_filename = getenv("MEMCACHED_PORT_FILENAME"); - char temp_portnumber_filename[PATH_MAX]; + char *temp_portnumber_filename = NULL; + size_t len; FILE *portnumber_file = NULL; if (portnumber_filename != NULL) { + len = strlen(portnumber_filename)+4+1; + temp_portnumber_filename = malloc(len); snprintf(temp_portnumber_filename, - sizeof(temp_portnumber_filename), + len, "%s.lck", portnumber_filename); portnumber_file = fopen(temp_portnumber_filename, "a"); @@ -5752,6 +5755,7 @@ int main (int argc, char **argv) { if (portnumber_file) { fclose(portnumber_file); rename(temp_portnumber_filename, portnumber_filename); + free(temp_portnumber_filename); } } -- cgit v1.2.1