summaryrefslogtreecommitdiffstats
path: root/tapset/conversions.stp
diff options
context:
space:
mode:
Diffstat (limited to 'tapset/conversions.stp')
-rw-r--r--tapset/conversions.stp13
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);
+ }
+%}