Project homepage Mailing List  Warmcat.com  API Docs  Github Mirror 
{"schema":"libjg2-1", "vpath":"/git/", "avatar":"/git/avatar/", "alang":"", "gen_ut":1755713861, "reponame":"libwebsockets", "desc":"libwebsockets lightweight C networking library", "owner": { "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },"url":"https://libwebsockets.org/repo/libwebsockets", "f":3, "items": [ {"schema":"libjg2-1", "cid":"fdddc71bbbc4a6e4a3e3d9dc1bcb3d9a", "commit": {"type":"commit", "time": 1556955001, "time_ofs": 60, "oid_tree": { "oid": "e9b38c7e3dbf33ac5f8e9600391e9c4a5caa573f", "alias": []}, "oid":{ "oid": "c42920bdcc2154d72330a9f15d8b33b52b207ec5", "alias": []}, "msg": "ws: connection parse: check just the resolved token", "sig_commit": { "git_time": { "time": 1556955001, "offset": 60 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }, "sig_author": { "git_time": { "time": 1556955001, "offset": 60 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }}, "body": "ws: connection parse: check just the resolved token\n\nAdd strncasecmp to correctly restrict the check to just the\ntokenizer token extent\n" , "diff": "diff --git a/lib/core/private.h b/lib/core/private.h\nindex 5d2e52c..a62cba5 100644\n--- a/lib/core/private.h\n+++ b/lib/core/private.h\n@@ -140,8 +140,10 @@\n \t // Visual studio older than 2015 and WIN_CE has only _stricmp\n \t#if (defined(_MSC_VER) \u0026\u0026 _MSC_VER \u003c 1900) || defined(_WIN32_WCE)\n \t#define strcasecmp _stricmp\n+\t#define strncasecmp _strnicmp\n \t#elif !defined(__MINGW32__)\n \t#define strcasecmp stricmp\n+\t#define strncasecmp strnicmp\n \t#endif\n \t#define getdtablesize() 30000\n #endif\ndiff --git a/lib/roles/ws/client-ws.c b/lib/roles/ws/client-ws.c\nindex c3eba23..e930dab 100644\n--- a/lib/roles/ws/client-ws.c\n+++ b/lib/roles/ws/client-ws.c\n@@ -298,15 +298,17 @@ lws_client_ws_upgrade(struct lws *wsi, const char **cce)\n \t\te \u003d lws_tokenize(\u0026ts);\n \t\tswitch (e) {\n \t\tcase LWS_TOKZE_TOKEN:\n-\t\t\tif (!strcasecmp(ts.token, \u0022upgrade\u0022))\n+\t\t\tif (!strncasecmp(ts.token, \u0022upgrade\u0022, ts.token_len))\n \t\t\t\te \u003d LWS_TOKZE_ENDED;\n \t\t\tbreak;\n \n \t\tcase LWS_TOKZE_DELIMITER:\n \t\t\tbreak;\n \n-\t\tdefault: /* includes ENDED */\n+\t\tdefault: /* includes ENDED found by the tokenizer itself */\n bad_conn_format:\n+\t\t\tlwsl_info(\u0022%s: malfored connection '%s'\u005cn\u0022,\n+\t\t\t\t __func__, buf);\n \t\t\t*cce \u003d \u0022HS: UPGRADE malformed\u0022;\n \t\t\tgoto bail3;\n \t\t}\n","s":{"c":1755713861,"u": 2606}} ],"g": 4103,"chitpc": 0,"ehitpc": 0,"indexed":0 , "ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}