summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhunt <hunt>2007-10-10 14:12:13 +0000
committerhunt <hunt>2007-10-10 14:12:13 +0000
commitd319669c3f77a3e451f1cad845471433e6d0dbfa (patch)
tree24cbeb006365fdaa21dbf9cf3b44eae055684123
parent8e67a997469cfdc08db58a214612f63dd6e8ebab (diff)
downloadsystemtap-steved-d319669c3f77a3e451f1cad845471433e6d0dbfa.tar.gz
systemtap-steved-d319669c3f77a3e451f1cad845471433e6d0dbfa.tar.xz
systemtap-steved-d319669c3f77a3e451f1cad845471433e6d0dbfa.zip
2007-10-10 Martin Hunt <hunt@redhat.com>
* aux_syscalls.stp (_stp_lookup_str): When defaulting to a numeric value, append, don't overwrite.
-rw-r--r--tapset/ChangeLog5
-rw-r--r--tapset/aux_syscalls.stp7
2 files changed, 10 insertions, 2 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog
index 870ca61c..287b0823 100644
--- a/tapset/ChangeLog
+++ b/tapset/ChangeLog
@@ -1,3 +1,8 @@
+2007-10-10 Martin Hunt <hunt@redhat.com>
+
+ * aux_syscalls.stp (_stp_lookup_str): When defaulting
+ to a numeric value, append, don't overwrite.
+
2007-10-10 Zhaolei <zhaolei@cn.fujitsu.com>
From Lai Jiangshan <laijs@cn.fujitsu.com>
diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp
index 08018ad2..05c7dc98 100644
--- a/tapset/aux_syscalls.stp
+++ b/tapset/aux_syscalls.stp
@@ -1520,7 +1520,7 @@ typedef struct {
void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
- int i = 0;
+ int i = 0, slen;
while (array[i].name) {
if (array[i].val == val) {
strlcat (ptr, array[i].name, len);
@@ -1528,15 +1528,18 @@ void _stp_lookup_str(const _stp_val_array * const array, long val, char *ptr, in
}
i++;
}
- snprintf(ptr, len, "0x%lx", val);
+ slen = strlen(ptr);
+ _stp_snprintf(ptr + slen, len - slen, "0x%lx", val);
}
void _stp_lookup_or_str(const _stp_val_array * const array, long val, char *ptr, int len)
{
int i = 0, flag = 0;
+
if (val == 0) {
_stp_lookup_str(array, val, ptr, len);
return;
}
+
while (array[i].name) {
if (array[i].val & val) {
if (flag)