Browse Source

Init endptr argument of strtol and autoformat

bel 10 years ago
parent
commit
bd377322e5
1 changed files with 59 additions and 57 deletions
  1. 59 57
      src/civetweb.c

+ 59 - 57
src/civetweb.c

@@ -65,7 +65,7 @@
 #define mg_static_assert static_assert
 #elif defined(__cplusplus) && (__cplusplus >= 201103L)
 #define mg_static_assert static_assert
-#elif defined (__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
 #define mg_static_assert _Static_assert
 #else
 char static_assert_replacement[1];
@@ -501,7 +501,9 @@ DEBUG_TRACE_FUNC(const char *func, unsigned line, const char *fmt, ...)
 	DEBUG_TRACE_FUNC(__func__, __LINE__, fmt, __VA_ARGS__)
 
 #else
-#define DEBUG_TRACE(fmt, ...) do {} while(0)
+#define DEBUG_TRACE(fmt, ...)                                                  \
+	do {                                                                       \
+	} while (0)
 #endif /* DEBUG */
 #endif /* DEBUG_TRACE */
 
@@ -972,20 +974,20 @@ struct mg_request_handler_info {
 };
 
 struct mg_context {
-	volatile int stop_flag;         /* Should we stop event loop */
-	SSL_CTX *ssl_ctx;               /* SSL context */
-	char *config[NUM_OPTIONS];      /* Civetweb configuration parameters */
-	struct mg_callbacks callbacks;  /* User-defined callback function */
-	void *user_data;                /* User-defined data */
-	int context_type;               /* 1 = server context, 2 = client context */
+	volatile int stop_flag;        /* Should we stop event loop */
+	SSL_CTX *ssl_ctx;              /* SSL context */
+	char *config[NUM_OPTIONS];     /* Civetweb configuration parameters */
+	struct mg_callbacks callbacks; /* User-defined callback function */
+	void *user_data;               /* User-defined data */
+	int context_type;              /* 1 = server context, 2 = client context */
 
 	struct socket *listening_sockets;
 	in_port_t *listening_ports;
 	unsigned int num_listening_sockets;
 
-	volatile int num_threads;       /* Number of threads */
-	pthread_mutex_t thread_mutex;   /* Protects (max|num)_threads */
-	pthread_cond_t thread_cond;     /* Condvar for tracking workers terminations */
+	volatile int num_threads;     /* Number of threads */
+	pthread_mutex_t thread_mutex; /* Protects (max|num)_threads */
+	pthread_cond_t thread_cond; /* Condvar for tracking workers terminations */
 
 	struct socket queue[MGSQLEN];   /* Accepted sockets */
 	volatile int sq_head;           /* Head of the socket queue */
@@ -996,11 +998,11 @@ struct mg_context {
 	unsigned int workerthreadcount; /* The amount of worker threads. */
 	pthread_t *workerthreadids;     /* The worker thread IDs */
 
-	unsigned long start_time;       /* Server start time, used for authentication */
-	pthread_mutex_t nonce_mutex;    /* Protects nonce_count */
-	unsigned long nonce_count;      /* Used nonces, used for authentication */
+	unsigned long start_time; /* Server start time, used for authentication */
+	pthread_mutex_t nonce_mutex; /* Protects nonce_count */
+	unsigned long nonce_count;   /* Used nonces, used for authentication */
 
-	char *systemName;               /* What operating system is running */
+	char *systemName; /* What operating system is running */
 
 	/* linked list of uri handlers */
 	struct mg_request_handler_info *request_handlers;
@@ -1023,31 +1025,31 @@ struct mg_connection {
 	struct socket client;        /* Connected client */
 	time_t conn_birth_time;      /* Time (wall clock) when connection was
 	                              * established */
-	struct timespec req_time;    /* Time (since system start) when the request 
-                                  * was received */
+	struct timespec req_time;    /* Time (since system start) when the request
+	                              * was received */
 	int64_t num_bytes_sent;      /* Total bytes sent to client */
 	int64_t content_len;         /* Content-Length header value */
 	int64_t consumed_content;    /* How many bytes of content have been read */
 	int is_chunked;              /* Transfer-encoding is chunked: 0=no, 1=yes:
-                                  * data available, 2: all data read */
+	                              * data available, 2: all data read */
 	size_t chunk_remainder;      /* Unread data from the last chunk */
 	char *buf;                   /* Buffer for received data */
 	char *path_info;             /* PATH_INFO part of the URL */
 	int must_close;              /* 1 if connection must be closed */
-	int in_error_handler;        /* 1 if in handler for user defined error 
-                                  * pages */
+	int in_error_handler;        /* 1 if in handler for user defined error
+	                              * pages */
 	int buf_size;                /* Buffer size */
 	int request_len;             /* Size of the request + headers in a buffer */
 	int data_len;                /* Total size of data in a buffer */
 	int status_code;             /* HTTP reply status code, e.g. 200 */
-	int throttle;                /* Throttling, bytes/sec. <= 0 means no 
-                                  * throttle */
+	int throttle;                /* Throttling, bytes/sec. <= 0 means no
+	                              * throttle */
 	time_t last_throttle_time;   /* Last time throttled data was sent */
 	int64_t last_throttle_bytes; /* Bytes sent this second */
 	pthread_mutex_t mutex;       /* Used by mg_(un)lock_connection to ensure
 	                              * atomic transmissions for websockets */
 #if defined(USE_LUA) && defined(USE_WEBSOCKET)
-	void *lua_websocket_state;   /* Lua_State for a websocket connection */
+	void *lua_websocket_state; /* Lua_State for a websocket connection */
 #endif
 };
 
@@ -1681,7 +1683,8 @@ next_option(const char *list, struct vec *val, struct vec *eq_val)
 }
 
 /* Perform case-insensitive match of string against pattern */
-static int match_prefix(const char *pattern, size_t pattern_len, const char *str)
+static int
+match_prefix(const char *pattern, size_t pattern_len, const char *str)
 {
 	const char *or_str;
 	size_t i;
@@ -1689,11 +1692,10 @@ static int match_prefix(const char *pattern, size_t pattern_len, const char *str
 
 	if ((or_str = (const char *)memchr(pattern, '|', pattern_len)) != NULL) {
 		res = match_prefix(pattern, (size_t)(or_str - pattern), str);
-		return res > 0
-		           ? res
-		           : match_prefix(or_str + 1,
-		                          (size_t)((pattern + pattern_len) - (or_str + 1)),
-		                          str);
+		return res > 0 ? res : match_prefix(or_str + 1,
+		                                    (size_t)((pattern + pattern_len) -
+		                                             (or_str + 1)),
+		                                    str);
 	}
 
 	for (i = 0, j = 0; i < pattern_len; i++, j++) {
@@ -2037,7 +2039,8 @@ send_http_error(struct mg_connection *conn, int status, const char *fmt, ...)
 			buf[len] = 0;
 
 			va_start(ap, fmt);
-			len += mg_vsnprintf(conn, buf + len, sizeof(buf) - (size_t)len, fmt, ap);
+			len += mg_vsnprintf(
+			    conn, buf + len, sizeof(buf) - (size_t)len, fmt, ap);
 			va_end(ap);
 		}
 		DEBUG_TRACE("[%s]", buf);
@@ -3013,7 +3016,8 @@ static void discard_unread_request_data(struct mg_connection *conn)
 	} else {
 		/* Not chunked: content length is known */
 		while (conn->consumed_content < conn->content_len) {
-			if (to_read > (size_t)(conn->content_len - conn->consumed_content)) {
+			if (to_read >
+			    (size_t)(conn->content_len - conn->consumed_content)) {
 				to_read = (size_t)(conn->content_len - conn->consumed_content);
 			}
 
@@ -3108,9 +3112,9 @@ int mg_read(struct mg_connection *conn, void *buf, size_t len)
 			if (conn->chunk_remainder) {
 				/* copy from the remainder of the last received chunk */
 				long read_ret;
-				size_t read_now = ((conn->chunk_remainder > len)
-				                         ? (len)
-				                         : (conn->chunk_remainder));
+				size_t read_now =
+				    ((conn->chunk_remainder > len) ? (len)
+				                                   : (conn->chunk_remainder));
 
 				conn->content_len += (int)read_now;
 				read_ret =
@@ -3615,10 +3619,9 @@ interpret_uri(struct mg_connection *conn,   /* in: request */
 #endif
 #if defined(USE_LUA)
 			    ||
-			    match_prefix(
-			        conn->ctx->config[LUA_SCRIPT_EXTENSIONS],
-			        strlen(conn->ctx->config[LUA_SCRIPT_EXTENSIONS]),
-			        filename) > 0
+			    match_prefix(conn->ctx->config[LUA_SCRIPT_EXTENSIONS],
+			                 strlen(conn->ctx->config[LUA_SCRIPT_EXTENSIONS]),
+			                 filename) > 0
 #endif
 			    ) {
 				/* The request addresses a CGI script or a Lua script. The URI
@@ -3662,10 +3665,9 @@ interpret_uri(struct mg_connection *conn,   /* in: request */
 				if ((0
 #if !defined(NO_CGI)
 				     ||
-				     match_prefix(
-				         conn->ctx->config[CGI_EXTENSIONS],
-				         strlen(conn->ctx->config[CGI_EXTENSIONS]),
-				         filename) > 0
+				     match_prefix(conn->ctx->config[CGI_EXTENSIONS],
+				                  strlen(conn->ctx->config[CGI_EXTENSIONS]),
+				                  filename) > 0
 #endif
 #if defined(USE_LUA)
 				     ||
@@ -4172,6 +4174,7 @@ static int parse_auth_header(struct mg_connection *conn,
 	if (ah->nonce == NULL) {
 		return 0;
 	}
+	s = NULL;
 	nonce = strtoul(ah->nonce, &s, 10);
 	if ((s == NULL) || (*s != 0)) {
 		return 0;
@@ -4208,7 +4211,7 @@ static char *mg_fgets(char *buf, size_t size, struct file *filep, char **p)
 
 	if (filep->membuf != NULL && *p != NULL) {
 		memend = (char *)&filep->membuf[filep->size];
-		 /* Search for \n from p till the end of stream */
+		/* Search for \n from p till the end of stream */
 		eof = (char *)memchr(*p, '\n', (size_t)(memend - *p));
 		if (eof != NULL) {
 			eof += 1; /* Include \n */
@@ -5471,8 +5474,7 @@ static char *addenv(struct cgi_env_block *block, const char *fmt, ...)
 	va_end(ap);
 
 	/* Make sure we do not overflow buffer and the envp array */
-	if (n > 0 && n + 1 < space &&
-	    block->nvars + 2 < ARRAY_SIZE(block->vars)) {
+	if (n > 0 && n + 1 < space && block->nvars + 2 < ARRAY_SIZE(block->vars)) {
 		/* Append a pointer to the added string into the envp array */
 		block->vars[block->nvars++] = added;
 		/* Bump up used length counter. Include \0 terminator */
@@ -7053,7 +7055,7 @@ static int parse_net(const char *spec, uint32_t *net, uint32_t *mask)
 	    slash < 33) {
 		len = n;
 		*net = ((uint32_t)a << 24) | ((uint32_t)b << 16) | ((uint32_t)c << 8) |
-		        (uint32_t)d;
+		       (uint32_t)d;
 		*mask = slash ? 0xffffffffU << (32 - slash) : 0;
 	}
 
@@ -7937,10 +7939,9 @@ static void handle_file_based_request(struct mg_connection *conn,
 		/* Lua server page: an SSI like page containing mostly plain html code
 		 * plus some tags with server generated contents. */
 		handle_lsp_request(conn, path, file, NULL);
-	} else if (match_prefix(
-	               conn->ctx->config[LUA_SCRIPT_EXTENSIONS],
-	               strlen(conn->ctx->config[LUA_SCRIPT_EXTENSIONS]),
-	               path) > 0) {
+	} else if (match_prefix(conn->ctx->config[LUA_SCRIPT_EXTENSIONS],
+	                        strlen(conn->ctx->config[LUA_SCRIPT_EXTENSIONS]),
+	                        path) > 0) {
 		/* Lua in-server module script: a CGI like script used to generate the
 		 * entire reply. */
 		mg_exec_lua_script(conn, path, NULL);
@@ -8043,7 +8044,7 @@ static int parse_port_string(const struct vec *vec, struct socket *so)
 		/* TODO: check -- so->lsa.sin6.sin6_port = htons((uint16_t) port); */
 		so->lsa.sin.sin_port = htons((uint16_t)port);
 	} else {
-		 /* Parsing failure. Make port invalid. */
+		/* Parsing failure. Make port invalid. */
 		port = 0;
 		len = 0;
 	}
@@ -8842,7 +8843,7 @@ getreq(struct mg_connection *conn, char *ebuf, size_t ebuf_len, int *err)
 		/* Message is a valid request or response */
 		if ((cl = get_header(&conn->request_info, "Content-Length")) != NULL) {
 			/* Request/response has content length set */
-			char *endptr;
+			char *endptr = NULL;
 			conn->content_len = strtoll(cl, &endptr, 10);
 			if (endptr == cl) {
 				snprintf(ebuf, ebuf_len, "%s", "Bad Request");
@@ -9162,7 +9163,8 @@ static void process_new_connection(struct mg_connection *conn)
 				break;
 			conn->data_len -= discard_len;
 			if (conn->data_len > 0)
-				memmove(conn->buf, conn->buf + discard_len, (size_t)conn->data_len);
+				memmove(
+				    conn->buf, conn->buf + discard_len, (size_t)conn->data_len);
 
 			/* assert(conn->data_len >= 0); */
 			/* assert(conn->data_len <= conn->buf_size); */
@@ -9177,7 +9179,7 @@ static void process_new_connection(struct mg_connection *conn)
 /* Worker threads take accepted socket from the queue */
 static int consume_socket(struct mg_context *ctx, struct socket *sp)
 {
-	#define QUEUE_SIZE(ctx) ((int)(ARRAY_SIZE(ctx->queue)))
+#define QUEUE_SIZE(ctx) ((int)(ARRAY_SIZE(ctx->queue)))
 	if (!ctx)
 		return 0;
 
@@ -9208,7 +9210,7 @@ static int consume_socket(struct mg_context *ctx, struct socket *sp)
 	(void)pthread_mutex_unlock(&ctx->thread_mutex);
 
 	return !ctx->stop_flag;
-	#undef QUEUE_SIZE
+#undef QUEUE_SIZE
 }
 
 static void *worker_thread_run(void *thread_func_param)
@@ -9312,7 +9314,7 @@ static void *worker_thread(void *thread_func_param)
 /* Master thread adds accepted socket to a queue */
 static void produce_socket(struct mg_context *ctx, const struct socket *sp)
 {
-	#define QUEUE_SIZE(ctx) ((int)(ARRAY_SIZE(ctx->queue)))
+#define QUEUE_SIZE(ctx) ((int)(ARRAY_SIZE(ctx->queue)))
 	if (!ctx)
 		return;
 	(void)pthread_mutex_lock(&ctx->thread_mutex);
@@ -9333,7 +9335,7 @@ static void produce_socket(struct mg_context *ctx, const struct socket *sp)
 
 	(void)pthread_cond_signal(&ctx->sq_full);
 	(void)pthread_mutex_unlock(&ctx->thread_mutex);
-	#undef QUEUE_SIZE
+#undef QUEUE_SIZE
 }
 
 static void accept_new_connection(const struct socket *listener,