{"schema":"libjg2-1",
"vpath":"/git/",
"avatar":"/git/avatar/",
"alang":"",
"gen_ut":1752653079,
"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":"740f0df1e77260cc6dcbc7fee2a43c00",
"commit": {"type":"commit",
"time": 1594826280,
"time_ofs": 60,
"oid_tree": { "oid": "baa21905930ebb2b89a2fa310e24c62ec85e9d4e", "alias": []},
"oid":{ "oid": "08b9a31e205c0e78a340526f869714a9712f7032", "alias": []},
"msg": "lws_json_simple: allow running into end",
"sig_commit": { "git_time": { "time": 1594826280, "offset": 60 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" },
"sig_author": { "git_time": { "time": 1594562956, "offset": 60 }, "name": "Andy Green", "email": "andy@warmcat.com", "md5": "c50933ca2aa61e0fe2c43d46bb6b59cb" }},
"body": "lws_json_simple: allow running into end\n\nIf the arg is unquoted, it's normal to run into the\nend finding its extent."
,
"diff": "diff --git a/lib/core/libwebsockets.c b/lib/core/libwebsockets.c\nindex d034fe7..aae7155 100644\n--- a/lib/core/libwebsockets.c\n+++ b/lib/core/libwebsockets.c\n@@ -405,7 +405,7 @@ lws_json_simple_find(const char *buf, size_t len, const char *name, size_t *alen\n \twhile (np \u003c end \u0026\u0026 (*np \u003d\u003d ' ' || *np \u003d\u003d '\u005ct'))\n \t\tnp++;\n \n-\tif (np \u003e\u003d end - 1)\n+\tif (np \u003e\u003d end)\n \t\treturn NULL;\n \n \t/*\n@@ -432,9 +432,6 @@ lws_json_simple_find(const char *buf, size_t len, const char *name, size_t *alen\n \t\tnp++;\n \t}\n \n-\tif (np \u003d\u003d end)\n-\t\treturn NULL;\n-\n \t*alen \u003d lws_ptr_diff(np, as);\n \n \treturn as;\ndiff --git a/minimal-examples/api-tests/api-test-lejp/main.c b/minimal-examples/api-tests/api-test-lejp/main.c\nindex 91cd630..352181b 100644\n--- a/minimal-examples/api-tests/api-test-lejp/main.c\n+++ b/minimal-examples/api-tests/api-test-lejp/main.c\n@@ -184,6 +184,27 @@ int main(int argc, const char **argv)\n \t\t}\n \t}\n \n+\t{\n+\t\tconst char *cs;\n+\t\tsize_t cslen;\n+\t\tcs \u003d lws_json_simple_find(\u0022{\u005c\u0022blah\u005c\u0022:123,\u005c\u0022ext\u005c\u0022:{\u005c\u0022authorized\u005c\u0022:1}}\u0022, 35,\n+\t\t\t\t\t \u0022\u005c\u0022ext\u005c\u0022:\u0022, \u0026cslen);\n+\t\tif (!cs) {\n+\t\t\tlwsl_err(\u0022%s: simple_find failed\u005cn\u0022, __func__);\n+\t\t\te++;\n+\t\t} else {\n+\t\t\tif (lws_json_simple_strcmp(cs, cslen,\n+\t\t\t\t\t\u0022\u005c\u0022authorized\u005c\u0022:\u0022, \u00221\u0022))\n+\t\t\t\te++;\n+\t\t}\n+\t\tcs \u003d lws_json_simple_find(\u0022{\u005c\u0022blah\u005c\u0022:123,\u005c\u0022auth_user\u005c\u0022:\u005c\u0022andy@warmcat.com\u005c\u0022,\u005c\u0022thing\u005c\u0022:\u005c\u0022yeah\u005c\u0022}\u0022, 57,\n+\t\t\t\t\t \u0022\u005c\u0022auth_user\u005c\u0022:\u0022, \u0026cslen);\n+\t\tif (cslen !\u003d 16) {\n+\t\t\tlwsl_err(\u0022%s: wrong string len %d isolated\u005cn\u0022, __func__, (int)cslen);\n+\t\t\te++;\n+\t\t}\n+\t}\n+\n \tif (e)\n \t\tgoto bail;\n \n","s":{"c":1752653079,"u": 3055}}
],"g": 3901,"chitpc": 0,"ehitpc": 0,"indexed":0
,
"ab": 0, "si": 0, "db":0, "di":0, "sat":0, "lfc": "0000"}