From: Mark Wielaard Date: Mon, 27 Apr 2009 22:24:34 +0000 (+0200) Subject: Make sure user_string_n() results are always zero terminated strings. X-Git-Tag: release-0.9.8~136 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=193ef171ea2cb656f1fe68898d13a40caa1625c2;p=systemtap.git 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. --- diff --git a/tapset/conversions.stp b/tapset/conversions.stp index 70725e9d3..31b168217 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 */