You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by ki...@apache.org on 2014/12/10 15:18:06 UTC

trafficserver git commit: TS-3224: fix problem of ts_lua coredump

Repository: trafficserver
Updated Branches:
  refs/heads/master 156b7be9c -> 60c97c6f0


TS-3224: fix problem of ts_lua coredump


Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/60c97c6f
Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/60c97c6f
Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/60c97c6f

Branch: refs/heads/master
Commit: 60c97c6f04538a1cd176f412dfc2622b9008936e
Parents: 156b7be
Author: Kit Chan <ki...@apache.org>
Authored: Wed Dec 10 06:17:50 2014 -0800
Committer: Kit Chan <ki...@apache.org>
Committed: Wed Dec 10 06:17:50 2014 -0800

----------------------------------------------------------------------
 CHANGES                                              |  2 ++
 plugins/experimental/ts_lua/ts_lua_cached_response.c |  8 ++++++--
 plugins/experimental/ts_lua/ts_lua_client_request.c  | 14 +++++++++++---
 plugins/experimental/ts_lua/ts_lua_client_response.c |  8 ++++++--
 plugins/experimental/ts_lua/ts_lua_server_request.c  |  6 +++++-
 plugins/experimental/ts_lua/ts_lua_server_response.c |  9 +++++++--
 6 files changed, 37 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/CHANGES
----------------------------------------------------------------------
diff --git a/CHANGES b/CHANGES
index c091270..51f119e 100644
--- a/CHANGES
+++ b/CHANGES
@@ -1,6 +1,8 @@
                                                          -*- coding: utf-8 -*-
 Changes with Apache Traffic Server 5.3.0
 
+  *) [TS-3224] fix ts_lua core dump issue.
+
   *) [TS-3229] Filter unsupported epic metric names.
 
   *) [TS-3230] Remove unused ink_error APIs.

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_cached_response.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_cached_response.c b/plugins/experimental/ts_lua/ts_lua_cached_response.c
index abc30b7..74935fb 100644
--- a/plugins/experimental/ts_lua/ts_lua_cached_response.c
+++ b/plugins/experimental/ts_lua/ts_lua_cached_response.c
@@ -131,8 +131,12 @@ ts_lua_cached_response_get_version(lua_State * L)
 
   version = TSHttpHdrVersionGet(http_ctx->cached_response_bufp, http_ctx->cached_response_hdrp);
 
-  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
-  lua_pushlstring(L, buf, n);
+  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
+  if(n >= sizeof(buf)) {
+    lua_pushlstring(L, buf, sizeof(buf) - 1);
+  } else {
+    lua_pushlstring(L, buf, n);
+  }
 
   return 1;
 }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_client_request.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_client_request.c b/plugins/experimental/ts_lua/ts_lua_client_request.c
index 9d6cd26..14a5353 100644
--- a/plugins/experimental/ts_lua/ts_lua_client_request.c
+++ b/plugins/experimental/ts_lua/ts_lua_client_request.c
@@ -499,7 +499,11 @@ ts_lua_client_request_get_uri(lua_State * L)
 
   uri_len = snprintf(uri, TS_LUA_MAX_URL_LENGTH, "/%.*s", path_len, path);
 
-  lua_pushlstring(L, uri, uri_len);
+  if(uri_len >= TS_LUA_MAX_URL_LENGTH) {
+    lua_pushlstring(L, uri, TS_LUA_MAX_URL_LENGTH - 1);
+  } else {
+    lua_pushlstring(L, uri, uri_len);
+  }
 
   return 1;
 }
@@ -762,8 +766,12 @@ ts_lua_client_request_get_version(lua_State * L)
 
   version = TSHttpHdrVersionGet(http_ctx->client_request_bufp, http_ctx->client_request_hdrp);
 
-  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
-  lua_pushlstring(L, buf, n);
+  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
+  if (n >= sizeof(buf)) {
+    lua_pushlstring(L, buf, sizeof(buf) - 1);
+  } else {
+    lua_pushlstring(L, buf, n);
+  }
 
   return 1;
 }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_client_response.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_client_response.c b/plugins/experimental/ts_lua/ts_lua_client_response.c
index ac98869..9c8030d 100644
--- a/plugins/experimental/ts_lua/ts_lua_client_response.c
+++ b/plugins/experimental/ts_lua/ts_lua_client_response.c
@@ -309,8 +309,12 @@ ts_lua_client_response_get_version(lua_State * L)
 
   version = TSHttpHdrVersionGet(http_ctx->client_response_bufp, http_ctx->client_response_hdrp);
 
-  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
-  lua_pushlstring(L, buf, n);
+  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
+  if (n >= sizeof(buf)) {
+    lua_pushlstring(L, buf, sizeof(buf) - 1);
+  } else {
+    lua_pushlstring(L, buf, n);
+  }
 
   return 1;
 }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_server_request.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_server_request.c b/plugins/experimental/ts_lua/ts_lua_server_request.c
index b0d11ca..9eb6a8e 100644
--- a/plugins/experimental/ts_lua/ts_lua_server_request.c
+++ b/plugins/experimental/ts_lua/ts_lua_server_request.c
@@ -322,7 +322,11 @@ ts_lua_server_request_get_uri(lua_State * L)
 
   uri_len = snprintf(uri, TS_LUA_MAX_URL_LENGTH, "/%.*s", path_len, path);
 
-  lua_pushlstring(L, uri, uri_len);
+  if(uri_len >= TS_LUA_MAX_URL_LENGTH) {
+    lua_pushlstring(L, uri, TS_LUA_MAX_URL_LENGTH - 1);
+  } else {
+    lua_pushlstring(L, uri, uri_len);
+  }
 
   return 1;
 }

http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_server_response.c
----------------------------------------------------------------------
diff --git a/plugins/experimental/ts_lua/ts_lua_server_response.c b/plugins/experimental/ts_lua/ts_lua_server_response.c
index 6a0bbd0..465436e 100644
--- a/plugins/experimental/ts_lua/ts_lua_server_response.c
+++ b/plugins/experimental/ts_lua/ts_lua_server_response.c
@@ -290,9 +290,14 @@ ts_lua_server_response_get_version(lua_State * L)
 
   version = TSHttpHdrVersionGet(http_ctx->server_response_bufp, http_ctx->server_response_hdrp);
 
-  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
-  lua_pushlstring(L, buf, n);
+  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
 
+  if(n >= sizeof(buf)) {
+    lua_pushlstring(L, buf, sizeof(buf) - 1);
+  } else {
+    lua_pushlstring(L, buf, n);
+  }
+  
   return 1;
 }
 


Re: trafficserver git commit: TS-3224: fix problem of ts_lua coredump

Posted by James Peach <jp...@apache.org>.
> On Dec 10, 2014, at 6:18 AM, kichan@apache.org wrote:
> 
> Repository: trafficserver
> Updated Branches:
>  refs/heads/master 156b7be9c -> 60c97c6f0
> 
> 
> TS-3224: fix problem of ts_lua coredump
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/60c97c6f
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/60c97c6f
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/60c97c6f
> 
> Branch: refs/heads/master
> Commit: 60c97c6f04538a1cd176f412dfc2622b9008936e
> Parents: 156b7be
> Author: Kit Chan <ki...@apache.org>
> Authored: Wed Dec 10 06:17:50 2014 -0800
> Committer: Kit Chan <ki...@apache.org>
> Committed: Wed Dec 10 06:17:50 2014 -0800
> 
> ----------------------------------------------------------------------
> CHANGES                                              |  2 ++
> plugins/experimental/ts_lua/ts_lua_cached_response.c |  8 ++++++--
> plugins/experimental/ts_lua/ts_lua_client_request.c  | 14 +++++++++++---
> plugins/experimental/ts_lua/ts_lua_client_response.c |  8 ++++++--
> plugins/experimental/ts_lua/ts_lua_server_request.c  |  6 +++++-
> plugins/experimental/ts_lua/ts_lua_server_response.c |  9 +++++++--
> 6 files changed, 37 insertions(+), 10 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/CHANGES
> ----------------------------------------------------------------------
> diff --git a/CHANGES b/CHANGES
> index c091270..51f119e 100644
> --- a/CHANGES
> +++ b/CHANGES
> @@ -1,6 +1,8 @@
>                                                          -*- coding: utf-8 -*-
> Changes with Apache Traffic Server 5.3.0
> 
> +  *) [TS-3224] fix ts_lua core dump issue.
> +
>   *) [TS-3229] Filter unsupported epic metric names.
> 
>   *) [TS-3230] Remove unused ink_error APIs.
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_cached_response.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_cached_response.c b/plugins/experimental/ts_lua/ts_lua_cached_response.c
> index abc30b7..74935fb 100644
> --- a/plugins/experimental/ts_lua/ts_lua_cached_response.c
> +++ b/plugins/experimental/ts_lua/ts_lua_cached_response.c
> @@ -131,8 +131,12 @@ ts_lua_cached_response_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->cached_response_bufp, http_ctx->cached_response_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> +  if(n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }

Maybe a common function, instead of 4 copies of this code?

> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_client_request.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_client_request.c b/plugins/experimental/ts_lua/ts_lua_client_request.c
> index 9d6cd26..14a5353 100644
> --- a/plugins/experimental/ts_lua/ts_lua_client_request.c
> +++ b/plugins/experimental/ts_lua/ts_lua_client_request.c
> @@ -499,7 +499,11 @@ ts_lua_client_request_get_uri(lua_State * L)
> 
>   uri_len = snprintf(uri, TS_LUA_MAX_URL_LENGTH, "/%.*s", path_len, path);
> 
> -  lua_pushlstring(L, uri, uri_len);
> +  if(uri_len >= TS_LUA_MAX_URL_LENGTH) {
> +    lua_pushlstring(L, uri, TS_LUA_MAX_URL_LENGTH - 1);
> +  } else {
> +    lua_pushlstring(L, uri, uri_len);
> +  }
> 
>   return 1;
> }
> @@ -762,8 +766,12 @@ ts_lua_client_request_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->client_request_bufp, http_ctx->client_request_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> +  if (n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }
> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_client_response.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_client_response.c b/plugins/experimental/ts_lua/ts_lua_client_response.c
> index ac98869..9c8030d 100644
> --- a/plugins/experimental/ts_lua/ts_lua_client_response.c
> +++ b/plugins/experimental/ts_lua/ts_lua_client_response.c
> @@ -309,8 +309,12 @@ ts_lua_client_response_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->client_response_bufp, http_ctx->client_response_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> +  if (n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }
> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_server_request.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_server_request.c b/plugins/experimental/ts_lua/ts_lua_server_request.c
> index b0d11ca..9eb6a8e 100644
> --- a/plugins/experimental/ts_lua/ts_lua_server_request.c
> +++ b/plugins/experimental/ts_lua/ts_lua_server_request.c
> @@ -322,7 +322,11 @@ ts_lua_server_request_get_uri(lua_State * L)
> 
>   uri_len = snprintf(uri, TS_LUA_MAX_URL_LENGTH, "/%.*s", path_len, path);
> 
> -  lua_pushlstring(L, uri, uri_len);
> +  if(uri_len >= TS_LUA_MAX_URL_LENGTH) {
> +    lua_pushlstring(L, uri, TS_LUA_MAX_URL_LENGTH - 1);
> +  } else {
> +    lua_pushlstring(L, uri, uri_len);
> +  }
> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_server_response.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_server_response.c b/plugins/experimental/ts_lua/ts_lua_server_response.c
> index 6a0bbd0..465436e 100644
> --- a/plugins/experimental/ts_lua/ts_lua_server_response.c
> +++ b/plugins/experimental/ts_lua/ts_lua_server_response.c
> @@ -290,9 +290,14 @@ ts_lua_server_response_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->server_response_bufp, http_ctx->server_response_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> 
> +  if(n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }
> +  
>   return 1;
> }
> 
> 


Re: trafficserver git commit: TS-3224: fix problem of ts_lua coredump

Posted by James Peach <jp...@apache.org>.
> On Dec 10, 2014, at 6:18 AM, kichan@apache.org wrote:
> 
> Repository: trafficserver
> Updated Branches:
>  refs/heads/master 156b7be9c -> 60c97c6f0
> 
> 
> TS-3224: fix problem of ts_lua coredump
> 
> 
> Project: http://git-wip-us.apache.org/repos/asf/trafficserver/repo
> Commit: http://git-wip-us.apache.org/repos/asf/trafficserver/commit/60c97c6f
> Tree: http://git-wip-us.apache.org/repos/asf/trafficserver/tree/60c97c6f
> Diff: http://git-wip-us.apache.org/repos/asf/trafficserver/diff/60c97c6f
> 
> Branch: refs/heads/master
> Commit: 60c97c6f04538a1cd176f412dfc2622b9008936e
> Parents: 156b7be
> Author: Kit Chan <ki...@apache.org>
> Authored: Wed Dec 10 06:17:50 2014 -0800
> Committer: Kit Chan <ki...@apache.org>
> Committed: Wed Dec 10 06:17:50 2014 -0800
> 
> ----------------------------------------------------------------------
> CHANGES                                              |  2 ++
> plugins/experimental/ts_lua/ts_lua_cached_response.c |  8 ++++++--
> plugins/experimental/ts_lua/ts_lua_client_request.c  | 14 +++++++++++---
> plugins/experimental/ts_lua/ts_lua_client_response.c |  8 ++++++--
> plugins/experimental/ts_lua/ts_lua_server_request.c  |  6 +++++-
> plugins/experimental/ts_lua/ts_lua_server_response.c |  9 +++++++--
> 6 files changed, 37 insertions(+), 10 deletions(-)
> ----------------------------------------------------------------------
> 
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/CHANGES
> ----------------------------------------------------------------------
> diff --git a/CHANGES b/CHANGES
> index c091270..51f119e 100644
> --- a/CHANGES
> +++ b/CHANGES
> @@ -1,6 +1,8 @@
>                                                          -*- coding: utf-8 -*-
> Changes with Apache Traffic Server 5.3.0
> 
> +  *) [TS-3224] fix ts_lua core dump issue.
> +
>   *) [TS-3229] Filter unsupported epic metric names.
> 
>   *) [TS-3230] Remove unused ink_error APIs.
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_cached_response.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_cached_response.c b/plugins/experimental/ts_lua/ts_lua_cached_response.c
> index abc30b7..74935fb 100644
> --- a/plugins/experimental/ts_lua/ts_lua_cached_response.c
> +++ b/plugins/experimental/ts_lua/ts_lua_cached_response.c
> @@ -131,8 +131,12 @@ ts_lua_cached_response_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->cached_response_bufp, http_ctx->cached_response_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> +  if(n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }

Maybe a common function, instead of 4 copies of this code?

> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_client_request.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_client_request.c b/plugins/experimental/ts_lua/ts_lua_client_request.c
> index 9d6cd26..14a5353 100644
> --- a/plugins/experimental/ts_lua/ts_lua_client_request.c
> +++ b/plugins/experimental/ts_lua/ts_lua_client_request.c
> @@ -499,7 +499,11 @@ ts_lua_client_request_get_uri(lua_State * L)
> 
>   uri_len = snprintf(uri, TS_LUA_MAX_URL_LENGTH, "/%.*s", path_len, path);
> 
> -  lua_pushlstring(L, uri, uri_len);
> +  if(uri_len >= TS_LUA_MAX_URL_LENGTH) {
> +    lua_pushlstring(L, uri, TS_LUA_MAX_URL_LENGTH - 1);
> +  } else {
> +    lua_pushlstring(L, uri, uri_len);
> +  }
> 
>   return 1;
> }
> @@ -762,8 +766,12 @@ ts_lua_client_request_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->client_request_bufp, http_ctx->client_request_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> +  if (n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }
> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_client_response.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_client_response.c b/plugins/experimental/ts_lua/ts_lua_client_response.c
> index ac98869..9c8030d 100644
> --- a/plugins/experimental/ts_lua/ts_lua_client_response.c
> +++ b/plugins/experimental/ts_lua/ts_lua_client_response.c
> @@ -309,8 +309,12 @@ ts_lua_client_response_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->client_response_bufp, http_ctx->client_response_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> +  if (n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }
> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_server_request.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_server_request.c b/plugins/experimental/ts_lua/ts_lua_server_request.c
> index b0d11ca..9eb6a8e 100644
> --- a/plugins/experimental/ts_lua/ts_lua_server_request.c
> +++ b/plugins/experimental/ts_lua/ts_lua_server_request.c
> @@ -322,7 +322,11 @@ ts_lua_server_request_get_uri(lua_State * L)
> 
>   uri_len = snprintf(uri, TS_LUA_MAX_URL_LENGTH, "/%.*s", path_len, path);
> 
> -  lua_pushlstring(L, uri, uri_len);
> +  if(uri_len >= TS_LUA_MAX_URL_LENGTH) {
> +    lua_pushlstring(L, uri, TS_LUA_MAX_URL_LENGTH - 1);
> +  } else {
> +    lua_pushlstring(L, uri, uri_len);
> +  }
> 
>   return 1;
> }
> 
> http://git-wip-us.apache.org/repos/asf/trafficserver/blob/60c97c6f/plugins/experimental/ts_lua/ts_lua_server_response.c
> ----------------------------------------------------------------------
> diff --git a/plugins/experimental/ts_lua/ts_lua_server_response.c b/plugins/experimental/ts_lua/ts_lua_server_response.c
> index 6a0bbd0..465436e 100644
> --- a/plugins/experimental/ts_lua/ts_lua_server_response.c
> +++ b/plugins/experimental/ts_lua/ts_lua_server_response.c
> @@ -290,9 +290,14 @@ ts_lua_server_response_get_version(lua_State * L)
> 
>   version = TSHttpHdrVersionGet(http_ctx->server_response_bufp, http_ctx->server_response_hdrp);
> 
> -  n = snprintf(buf, sizeof(buf) - 1, "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> -  lua_pushlstring(L, buf, n);
> +  n = snprintf(buf, sizeof(buf), "%d.%d", TS_HTTP_MAJOR(version), TS_HTTP_MINOR(version));
> 
> +  if(n >= sizeof(buf)) {
> +    lua_pushlstring(L, buf, sizeof(buf) - 1);
> +  } else {
> +    lua_pushlstring(L, buf, n);
> +  }
> +  
>   return 1;
> }
> 
>