From 7e8ca70799224336f8c97d209d2b140e581b4733 Mon Sep 17 00:00:00 2001 From: Kit Chan Date: Fri, 30 Dec 2016 10:13:36 -0800 Subject: [PATCH] TS-5101: fix error handling for ts_lua --- plugins/experimental/ts_lua/ts_lua_client_request.c | 4 +++- plugins/experimental/ts_lua/ts_lua_client_response.c | 4 +++- plugins/experimental/ts_lua/ts_lua_server_response.c | 4 +++- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/plugins/experimental/ts_lua/ts_lua_client_request.c b/plugins/experimental/ts_lua/ts_lua_client_request.c index 1b9bc8e230f..d286bb5e16b 100644 --- a/plugins/experimental/ts_lua/ts_lua_client_request.c +++ b/plugins/experimental/ts_lua/ts_lua_client_request.c @@ -900,7 +900,9 @@ ts_lua_client_request_set_version(lua_State *L) version = luaL_checklstring(L, 1, &len); - sscanf(version, "%2u.%2u", &major, &minor); + if (sscanf(version, "%2u.%2u", &major, &minor) != 2) { + return luaL_error(L, "failed to set version. Format must be X.Y"); + } TSHttpHdrVersionSet(http_ctx->client_request_bufp, http_ctx->client_request_hdrp, TS_HTTP_VERSION(major, minor)); diff --git a/plugins/experimental/ts_lua/ts_lua_client_response.c b/plugins/experimental/ts_lua/ts_lua_client_response.c index 290f6f6da21..d5c656c16f4 100644 --- a/plugins/experimental/ts_lua/ts_lua_client_response.c +++ b/plugins/experimental/ts_lua/ts_lua_client_response.c @@ -367,7 +367,9 @@ ts_lua_client_response_set_version(lua_State *L) version = luaL_checklstring(L, 1, &len); - sscanf(version, "%2u.%2u", &major, &minor); + if (sscanf(version, "%2u.%2u", &major, &minor) != 2) { + return luaL_error(L, "failed to set version. Format must be X.Y"); + } TSHttpHdrVersionSet(http_ctx->client_response_bufp, http_ctx->client_response_hdrp, TS_HTTP_VERSION(major, minor)); diff --git a/plugins/experimental/ts_lua/ts_lua_server_response.c b/plugins/experimental/ts_lua/ts_lua_server_response.c index df43d5be0d2..d3e533876b3 100644 --- a/plugins/experimental/ts_lua/ts_lua_server_response.c +++ b/plugins/experimental/ts_lua/ts_lua_server_response.c @@ -351,7 +351,9 @@ ts_lua_server_response_set_version(lua_State *L) version = luaL_checklstring(L, 1, &len); - sscanf(version, "%2u.%2u", &major, &minor); + if (sscanf(version, "%2u.%2u", &major, &minor) != 2) { + return luaL_error(L, "failed to set version. Format must be X.Y"); + } TSHttpHdrVersionSet(http_ctx->server_response_bufp, http_ctx->server_response_hdrp, TS_HTTP_VERSION(major, minor));