diff options
Diffstat (limited to 'tapset/conversions.stp')
-rw-r--r-- | tapset/conversions.stp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/tapset/conversions.stp b/tapset/conversions.stp index 78e936aa..96c7162a 100644 --- a/tapset/conversions.stp +++ b/tapset/conversions.stp @@ -49,3 +49,16 @@ function user_string_warn:string (addr:long) %{ /* pure */ strlcpy (THIS->__retvalue, "<unknown>", MAXSTRINGLEN); } %} + +function user_string_quoted:string (addr:long) %{ /* pure */ + if (THIS->addr == 0) + strlcpy (THIS->__retvalue, "NULL", MAXSTRINGLEN); + else { + *THIS->__retvalue = '\"'; + if (_stp_strncpy_from_user (THIS->__retvalue+1, + (const char __user*) (uintptr_t) THIS->addr, MAXSTRINGLEN-2) < 0) + strlcpy (THIS->__retvalue, "<unknown>", MAXSTRINGLEN); + else + strlcat(THIS->__retvalue, "\"", MAXSTRINGLEN); + } +%} |