Browse Source

Fix some PSV Studio warnings for Windows build (#597)

bel2125 6 years ago
parent
commit
410c00e52d
5 changed files with 37 additions and 21 deletions
  1. 21 6
      examples/embedded_c/embedded_c.c
  2. 5 1
      examples/embedded_cpp/embedded_cpp.cpp
  3. 4 2
      src/CivetServer.cpp
  4. 4 10
      src/civetweb.c
  5. 3 2
      src/mod_lua.inl

+ 21 - 6
examples/embedded_c/embedded_c.c

@@ -153,7 +153,9 @@ BXHandler(struct mg_connection *conn, void *cbdata)
 	          "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: "
 	          "close\r\n\r\n");
 	mg_printf(conn, "<html><body>");
-	mg_printf(conn, "<h2>This is the BX handler %p!!!</h2>", cbdata);
+	mg_printf(conn,
+	          "<h2>This is the BX handler with argument %s.</h2>",
+	          cbdata);
 	mg_printf(conn, "<p>The actual uri is %s</p>", req_info->local_uri);
 	mg_printf(conn, "</body></html>\n");
 	return 1;
@@ -297,6 +299,16 @@ field_get(const char *key, const char *value, size_t valuelen, void *user_data)
 		mg_printf(conn, "value md5 hash = %s\n", outputbuf);
 	}
 
+#if 0 /* for debugging */
+	if (!strcmp(key, "File")) {
+		FILE *f = fopen("test.txt", "wb");
+		if (f) {
+			fwrite(value, 1, valuelen, f);
+			fclose(f);
+		}
+	}
+#endif
+
 	return 0;
 }
 
@@ -520,7 +532,8 @@ PostResponser(struct mg_connection *conn, void *cbdata)
 
 	const struct mg_request_info *ri = mg_get_request_info(conn);
 
-	if (strcmp(ri->request_method, "POST")) {
+	if (0 != strcmp(ri->request_method, "POST")) {
+		/* Not a POST request */
 		char buf[1024];
 		int ret = mg_get_request_link(conn, buf, sizeof(buf));
 
@@ -817,9 +830,11 @@ InformWebsockets(struct mg_context *ctx)
 {
 	static unsigned long cnt = 0;
 	char text[32];
+	size_t textlen;
 	int i;
 
 	sprintf(text, "%lu", ++cnt);
+	textlen = strlen(text);
 
 	mg_lock_context(ctx);
 	for (i = 0; i < MAX_WS_CLIENTS; i++) {
@@ -827,7 +842,7 @@ InformWebsockets(struct mg_context *ctx)
 			mg_websocket_write(ws_clients[i].conn,
 			                   MG_WEBSOCKET_OPCODE_TEXT,
 			                   text,
-			                   strlen(text));
+			                   textlen);
 		}
 	}
 	mg_unlock_context(ctx);
@@ -1017,9 +1032,9 @@ main(int argc, char *argv[])
 	mg_set_request_handler(ctx, "/A/B", ABHandler, 0);
 
 	/* Add handler for /B, /B/A, /B/B but not for /B* */
-	mg_set_request_handler(ctx, "/B$", BXHandler, (void *)0);
-	mg_set_request_handler(ctx, "/B/A$", BXHandler, (void *)1);
-	mg_set_request_handler(ctx, "/B/B$", BXHandler, (void *)2);
+	mg_set_request_handler(ctx, "/B$", BXHandler, (void *)"alpha");
+	mg_set_request_handler(ctx, "/B/A$", BXHandler, (void *)"beta");
+	mg_set_request_handler(ctx, "/B/B$", BXHandler, (void *)"gamma");
 
 	/* Add handler for all files with .foo extension */
 	mg_set_request_handler(ctx, "**.foo$", FooHandler, 0);

+ 5 - 1
examples/embedded_cpp/embedded_cpp.cpp

@@ -18,7 +18,11 @@
 #define PORT "8081"
 #define EXAMPLE_URI "/example"
 #define EXIT_URI "/exit"
-bool exitNow = false;
+
+
+/* Exit flag for main loop */
+volatile bool exitNow = false;
+
 
 class ExampleHandler : public CivetHandler
 {

+ 4 - 2
src/CivetServer.cpp

@@ -487,6 +487,7 @@ CivetServer::getParam(struct mg_connection *conn,
 			unsigned long con_len = strtoul(con_len_str, &end, 10);
 			if ((end == NULL) || (*end != 0)) {
 				// malformed header
+				mg_unlock_connection(conn);
 				return false;
 			}
 			if ((con_len > 0) && (con_len <= MAX_PARAM_BODY_LENGTH)) {
@@ -508,6 +509,7 @@ CivetServer::getParam(struct mg_connection *conn,
 			}
 			if (conobj.postData == NULL) {
 				// we cannot store the body
+				mg_unlock_connection(conn);
 				return false;
 			}
 		}
@@ -522,7 +524,7 @@ CivetServer::getParam(struct mg_connection *conn,
 	mg_unlock_connection(conn);
 
 	bool get_param_success = false;
-	if (!get_param_success && formParams != NULL) {
+	if (formParams != NULL) {
 		get_param_success =
 		    getParam(formParams, strlen(formParams), name, dst, occurrence);
 	}
@@ -567,7 +569,7 @@ CivetServer::getParam(const char *data,
 			assert(s >= p);
 
 			// Decode variable into destination buffer
-			urlDecode(p, (int)(s - p), dst, true);
+			urlDecode(p, (s - p), dst, true);
 			return true;
 		}
 	}

+ 4 - 10
src/civetweb.c

@@ -6972,7 +6972,7 @@ mg_vprintf(struct mg_connection *conn, const char *fmt, va_list ap)
 	if ((len = alloc_vprintf(&buf, mem, sizeof(mem), fmt, ap)) > 0) {
 		len = mg_write(conn, buf, (size_t)len);
 	}
-	if ((buf != mem) && (buf != NULL)) {
+	if (buf != mem) {
 		mg_free(buf);
 	}
 
@@ -11311,9 +11311,7 @@ done:
 		close(fderr[0]);
 	}
 
-	if (buf != NULL) {
-		mg_free(buf);
-	}
+	mg_free(buf);
 }
 #endif /* !NO_CGI */
 
@@ -18306,14 +18304,10 @@ free_context(struct mg_context *ctx)
 #endif /* !NO_SSL */
 
 	/* Deallocate worker thread ID array */
-	if (ctx->worker_threadids != NULL) {
-		mg_free(ctx->worker_threadids);
-	}
+	mg_free(ctx->worker_threadids);
 
 	/* Deallocate worker thread ID array */
-	if (ctx->worker_connections != NULL) {
-		mg_free(ctx->worker_connections);
-	}
+	mg_free(ctx->worker_connections);
 
 	/* deallocate system name string */
 	mg_free(ctx->systemName);

+ 3 - 2
src/mod_lua.inl

@@ -365,11 +365,12 @@ lsp_abort(lua_State *L)
 	lua_error(L);
 }
 
+
 struct lsp_var_reader_data {
-	const char *begin;
 	int64_t len;
-	unsigned char state;
 	int64_t consumed;
+	const char *begin;
+	unsigned char state;
 	char tag;
 };