From 193ef171ea2cb656f1fe68898d13a40caa1625c2 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Tue, 28 Apr 2009 00:24:34 +0200 Subject: Make sure user_string_n() results are always zero terminated strings. * tapset/conversions.stp (user_string_n2): Explicitly null terminate return string. (user_string_n_warn): Likewise. --- tapset/conversions.stp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'tapset/conversions.stp') diff --git a/tapset/conversions.stp b/tapset/conversions.stp index 70725e9d..31b16821 100644 --- a/tapset/conversions.stp +++ b/tapset/conversions.stp @@ -120,6 +120,8 @@ function user_string_n2:string (addr:long, n:long, err_msg:string) %{ /* pure */ (char __user *) (uintptr_t) THIS->addr, len) < 0) strlcpy(THIS->__retvalue, THIS->err_msg, MAXSTRINGLEN); + else + THIS->__retvalue[len - 1] = '\0'; %} function user_string_n_warn:string (addr:long, n:long) %{ /* pure */ @@ -137,7 +139,8 @@ function user_string_n_warn:string (addr:long, n:long) %{ /* pure */ (void *) (uintptr_t) THIS->addr); _stp_warn(CONTEXT->error_buffer); strlcpy (THIS->__retvalue, "", MAXSTRINGLEN); - } + } else + THIS->__retvalue[len - 1] = '\0'; %} function user_string_n_quoted:string (addr:long, n:long) %{ /* pure */ -- cgit