As about half of all printstr uses cases are invocations with the last
argument set to -1, create a dedicated function for this use case.
* defs.h (printstr): Rename to printstrn. All callers updated.
(printstr): New static inline function. All callers updated.
26 files changed:
case SUB_COMMON:
if (cb->aio_lio_opcode == 1 && iocb_is_valid(cb)) {
tprints(", str=");
case SUB_COMMON:
if (cb->aio_lio_opcode == 1 && iocb_is_valid(cb)) {
tprints(", str=");
- printstr(tcp, cb->aio_buf, cb->aio_nbytes);
+ printstrn(tcp, cb->aio_buf, cb->aio_nbytes);
} else {
tprintf(", buf=%#" PRIx64, (uint64_t) cb->aio_buf);
}
} else {
tprintf(", buf=%#" PRIx64, (uint64_t) cb->aio_buf);
}
SYS_FUNC(delete_module)
{
SYS_FUNC(delete_module)
{
- printstr(tcp, tcp->u_arg[0], -1);
+ printstr(tcp, tcp->u_arg[0]);
tprints(", ");
printflags(delete_module_flags, tcp->u_arg[1], "O_???");
tprints(", ");
printflags(delete_module_flags, tcp->u_arg[1], "O_???");
{
printaddr_klu(getarg_klu(tcp, 0));
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
{
printaddr_klu(getarg_klu(tcp, 0));
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 1));
- printstr(tcp, tcp->u_arg[2], -1);
+ printstr(tcp, tcp->u_arg[2]);
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
/* param_values */
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
/* param_values */
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
tprints(", ");
/* flags */
printflags(module_init_flags, tcp->u_arg[2], "MODULE_INIT_???");
tprints(", ");
/* flags */
printflags(module_init_flags, tcp->u_arg[2], "MODULE_INIT_???");
printxval(bpf_prog_types, attr.prog_type, "BPF_PROG_TYPE_???");
tprintf(", insn_cnt=%u, insns=%#" PRIx64 ", license=",
attr.insn_cnt, attr.insns);
printxval(bpf_prog_types, attr.prog_type, "BPF_PROG_TYPE_???");
tprintf(", insn_cnt=%u, insns=%#" PRIx64 ", license=",
attr.insn_cnt, attr.insns);
- printstr(tcp, attr.license, -1);
+ printstr(tcp, attr.license);
tprintf(", log_level=%u, log_size=%u, log_buf=%#" PRIx64 ", kern_version=%u}",
attr.log_level, attr.log_size, attr.log_buf, attr.kern_version);
tprintf(", log_level=%u, log_size=%u, log_buf=%#" PRIx64 ", kern_version=%u}",
attr.log_level, attr.log_size, attr.log_buf, attr.kern_version);
-printstr(struct tcb *tcp, kernel_ureg_t addr, long len)
+printstrn(struct tcb *tcp, kernel_ureg_t addr, long len)
{
printstr_ex(tcp, addr, len, 0);
}
{
printstr_ex(tcp, addr, len, 0);
}
+static inline void
+printstr(struct tcb *tcp, kernel_ureg_t addr)
+{
+ printstr_ex(tcp, addr, -1, QUOTE_0_TERMINATED);
+}
+
static inline int
printflags(const struct xlat *x, unsigned int flags, const char *dflt)
{
static inline int
printflags(const struct xlat *x, unsigned int flags, const char *dflt)
{
if (syserror(tcp))
printaddr(arg);
else
if (syserror(tcp))
printaddr(arg);
else
- printstr(tcp, arg, tcp->u_rval);
+ printstrn(tcp, arg, tcp->u_rval);
return 1;
# ifdef EVIOCGPROP
case _IOC_NR(EVIOCGPROP(0)):
return 1;
# ifdef EVIOCGPROP
case _IOC_NR(EVIOCGPROP(0)):
- printstr(tcp, wordsize < sizeof(cp.p64) ? cp.p32 : cp.p64, -1);
+ printstr(tcp, wordsize < sizeof(cp.p64) ? cp.p32 : cp.p64);
if (syserror(tcp))
printaddr(tcp->u_arg[0]);
else
if (syserror(tcp))
printaddr(tcp->u_arg[0]);
else
- printstr(tcp, tcp->u_arg[0], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[0], tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[1]);
printflags(getrandom_flags, tcp->u_arg[2], "GRND_???");
}
tprintf(", %lu, ", tcp->u_arg[1]);
printflags(getrandom_flags, tcp->u_arg[2], "GRND_???");
}
- printstr(tcp, tcp->u_arg[0], tcp->u_arg[1]);
+ printstrn(tcp, tcp->u_arg[0], tcp->u_arg[1]);
tprintf(", %lu", tcp->u_arg[1]);
return RVAL_DECODED;
tprintf(", %lu", tcp->u_arg[1]);
return RVAL_DECODED;
if (syserror(tcp))
printaddr(tcp->u_arg[0]);
else
if (syserror(tcp))
printaddr(tcp->u_arg[0]);
else
- printstr(tcp, tcp->u_arg[0], -1);
+ printstr(tcp, tcp->u_arg[0]);
tprintf(", %lu", tcp->u_arg[1]);
}
return 0;
tprintf(", %lu", tcp->u_arg[1]);
}
return 0;
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
else
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
else
- printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu", tcp->u_arg[2]);
}
return 0;
tprintf(", %lu", tcp->u_arg[2]);
}
return 0;
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu", tcp->u_arg[2]);
return RVAL_DECODED;
tprintf(", %lu", tcp->u_arg[2]);
return RVAL_DECODED;
len = c->data_size;
if (c->data_size != -1UL)
c->data_size -= len;
len = c->data_size;
if (c->data_size != -1UL)
c->data_size -= len;
- printstr(tcp, iov[0], len);
+ printstrn(tcp, iov[0], len);
break;
case IOV_DECODE_NETLINK:
if (len > c->data_size)
break;
case IOV_DECODE_NETLINK:
if (len > c->data_size)
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
else
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
else
- printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%lld", 3);
}
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%lld", 3);
}
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%lld", 3);
tprintf(", %lu, ", tcp->u_arg[2]);
printllval(tcp, "%lld", 3);
/* cmdline_len */
tprintf("%" PRI_klu ", ", getarg_klu(tcp, 2));
/* cmdline */
/* cmdline_len */
tprintf("%" PRI_klu ", ", getarg_klu(tcp, 2));
/* cmdline */
- printstr(tcp, tcp->u_arg[3], tcp->u_arg[2]);
+ printstrn(tcp, tcp->u_arg[3], tcp->u_arg[2]);
tprints(", ");
/* flags */
printflags64(kexec_file_load_flags, getarg_klu(tcp, 4), "KEXEC_FILE_???");
tprints(", ");
/* flags */
printflags64(kexec_file_load_flags, getarg_klu(tcp, 4), "KEXEC_FILE_???");
SYS_FUNC(add_key)
{
/* type */
SYS_FUNC(add_key)
{
/* type */
- printstr(tcp, tcp->u_arg[0], -1);
+ printstr(tcp, tcp->u_arg[0]);
/* description */
tprints(", ");
/* description */
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
/* payload */
tprints(", ");
/* payload */
tprints(", ");
- printstr(tcp, tcp->u_arg[2], tcp->u_arg[3]);
+ printstrn(tcp, tcp->u_arg[2], tcp->u_arg[3]);
/* payload length */
tprintf(", %lu, ", tcp->u_arg[3]);
/* keyring serial number */
/* payload length */
tprintf(", %lu, ", tcp->u_arg[3]);
/* keyring serial number */
SYS_FUNC(request_key)
{
/* type */
SYS_FUNC(request_key)
{
/* type */
- printstr(tcp, tcp->u_arg[0], -1);
+ printstr(tcp, tcp->u_arg[0]);
/* description */
tprints(", ");
/* description */
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
/* callout_info */
tprints(", ");
/* callout_info */
tprints(", ");
- printstr(tcp, tcp->u_arg[2], -1);
+ printstr(tcp, tcp->u_arg[2]);
/* keyring serial number */
tprints(", ");
print_keyring_serial_number(tcp->u_arg[3]);
/* keyring serial number */
tprints(", ");
print_keyring_serial_number(tcp->u_arg[3]);
{
print_keyring_serial_number(id);
tprints(", ");
{
print_keyring_serial_number(id);
tprints(", ");
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
tprintf(", %llu", zero_extend_signed_to_ull(len));
}
tprintf(", %llu", zero_extend_signed_to_ull(len));
}
{
print_keyring_serial_number(id1);
tprints(", ");
{
print_keyring_serial_number(id1);
tprints(", ");
- printstr(tcp, addr1, -1);
- printstr(tcp, addr2, -1);
tprints(", ");
print_keyring_serial_number(id2);
}
tprints(", ");
print_keyring_serial_number(id2);
}
{
print_keyring_serial_number(id1);
tprints(", ");
{
print_keyring_serial_number(id1);
tprints(", ");
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
tprintf(", %llu, ", zero_extend_signed_to_ull(len));
print_keyring_serial_number(id2);
}
tprintf(", %llu, ", zero_extend_signed_to_ull(len));
print_keyring_serial_number(id2);
}
kernel_ulong_t rval = (tcp->u_rval >= 0) &&
((kernel_ulong_t) tcp->u_rval > len) ? len :
(kernel_ulong_t) tcp->u_rval;
kernel_ulong_t rval = (tcp->u_rval >= 0) &&
((kernel_ulong_t) tcp->u_rval > len) ? len :
(kernel_ulong_t) tcp->u_rval;
- printstr(tcp, buf, rval);
+ printstrn(tcp, buf, rval);
}
tprintf(", %llu", zero_extend_signed_to_ull(len));
}
}
tprintf(", %llu", zero_extend_signed_to_ull(len));
}
break;
case KEYCTL_JOIN_SESSION_KEYRING:
break;
case KEYCTL_JOIN_SESSION_KEYRING:
- printstr(tcp, arg2, -1);
break;
case KEYCTL_UPDATE:
break;
case KEYCTL_UPDATE:
if (syserror(tcp))
printaddr(tcp->u_arg[argn]);
else
if (syserror(tcp))
printaddr(tcp->u_arg[argn]);
else
- printstr(tcp, tcp->u_arg[argn], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[argn], tcp->u_rval);
/* len */
tprintf(", %" PRI_klu, getarg_klu(tcp, argn + 1));
/* len */
tprintf(", %" PRI_klu, getarg_klu(tcp, argn + 1));
- printstr(tcp, tcp->u_arg[0], -1);
+ printstr(tcp, tcp->u_arg[0]);
tprints(", ");
printflags(memfd_create_flags, tcp->u_arg[1], "MFD_???");
tprints(", ");
printflags(memfd_create_flags, tcp->u_arg[1], "MFD_???");
if (ignore_type)
printaddr(tcp->u_arg[2]);
else
if (ignore_type)
printaddr(tcp->u_arg[2]);
else
- printstr(tcp, tcp->u_arg[2], -1);
+ printstr(tcp, tcp->u_arg[2]);
tprints(", ");
if (old_magic) {
tprints(", ");
if (old_magic) {
if (ignore_data)
printaddr(tcp->u_arg[4]);
else
if (ignore_data)
printaddr(tcp->u_arg[4]);
else
- printstr(tcp, tcp->u_arg[4], -1);
+ printstr(tcp, tcp->u_arg[4]);
SYS_FUNC(mq_timedsend)
{
tprintf("%d, ", (int) tcp->u_arg[0]);
SYS_FUNC(mq_timedsend)
{
tprintf("%d, ", (int) tcp->u_arg[0]);
- printstr(tcp, tcp->u_arg[1], tcp->u_arg[2]);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_arg[2]);
tprintf(", %" PRI_klu ", %u, ", getarg_klu(tcp, 2),
(unsigned int) tcp->u_arg[3]);
print_timespec(tcp, tcp->u_arg[4]);
tprintf(", %" PRI_klu ", %u, ", getarg_klu(tcp, 2),
(unsigned int) tcp->u_arg[3]);
print_timespec(tcp, tcp->u_arg[4]);
tprintf("%d, ", (int) tcp->u_arg[0]);
} else {
if (!syserror(tcp) && (tcp->u_rval >= 0))
tprintf("%d, ", (int) tcp->u_arg[0]);
} else {
if (!syserror(tcp) && (tcp->u_rval >= 0))
- printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
else
printaddr(tcp->u_arg[1]);
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 2));
else
printaddr(tcp->u_arg[1]);
tprintf(", %" PRI_klu ", ", getarg_klu(tcp, 2));
decode_netlink(tcp, addr, addrlen);
break;
default:
decode_netlink(tcp, addr, addrlen);
break;
default:
- printstr(tcp, addr, addrlen);
+ printstrn(tcp, addr, addrlen);
if (len == sizeof(int)) {
printnum_int(tcp, addr, "%d");
} else {
if (len == sizeof(int)) {
printnum_int(tcp, addr, "%d");
} else {
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
}
} else {
printaddr(addr);
}
} else {
printaddr(addr);
struct ip_mreq mreq;
if (len < sizeof(mreq)) {
struct ip_mreq mreq;
if (len < sizeof(mreq)) {
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
return;
}
if (umove_or_printaddr(tcp, addr, &mreq))
return;
}
if (umove_or_printaddr(tcp, addr, &mreq))
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
}
#endif /* IPV6_ADD_MEMBERSHIP */
}
#endif /* IPV6_ADD_MEMBERSHIP */
if (len == sizeof(int)) {
printnum_int(tcp, addr, "%d");
} else {
if (len == sizeof(int)) {
printnum_int(tcp, addr, "%d");
} else {
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
}
} else {
printaddr(addr);
}
} else {
printaddr(addr);
const kernel_ureg_t addr, const unsigned long len)
{
if (len < sizeof(struct nlmsghdr)) {
const kernel_ureg_t addr, const unsigned long len)
{
if (len < sizeof(struct nlmsghdr)) {
- printstr(tcp, addr, len);
+ printstrn(tcp, addr, len);
if (nlmsg_len > sizeof(struct nlmsghdr)) {
tprints(", ");
if (nlmsg_len > sizeof(struct nlmsghdr)) {
tprints(", ");
- printstr(tcp, addr + sizeof(struct nlmsghdr),
+ printstrn(tcp, addr + sizeof(struct nlmsghdr),
nlmsg_len - sizeof(struct nlmsghdr));
}
nlmsg_len - sizeof(struct nlmsghdr));
}
if (arg2 == PR_SET_VMA_ANON_NAME) {
tprintf(", PR_SET_VMA_ANON_NAME, %#" PRI_klx, arg3);
tprintf(", %" PRI_klu ", ", arg4);
if (arg2 == PR_SET_VMA_ANON_NAME) {
tprintf(", PR_SET_VMA_ANON_NAME, %#" PRI_klx, arg3);
tprintf(", %" PRI_klu ", ", arg4);
- printstr(tcp, arg5, -1);
} else {
/* There are no other sub-options now, but there
* might be in future... */
} else {
/* There are no other sub-options now, but there
* might be in future... */
if (!umove_or_printaddr(tcp, addr, &msg)) {
tprintf("{%lu, ", (long) msg.mtype);
if (!umove_or_printaddr(tcp, addr, &msg)) {
tprintf("{%lu, ", (long) msg.mtype);
- printstr(tcp, addr + sizeof(msg.mtype), count);
+ printstrn(tcp, addr + sizeof(msg.mtype), count);
tprints("}");
}
tprintf(", %lu, ", count);
tprints("}");
}
tprintf(", %lu, ", count);
* "..." continuation based on garbage
* past return buffer's end.
*/
* "..." continuation based on garbage
* past return buffer's end.
*/
- printstr(tcp, tcp->u_arg[offset + 1], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[offset + 1], tcp->u_rval);
tprintf(", %lu", tcp->u_arg[offset + 2]);
}
return 0;
tprintf(", %lu", tcp->u_arg[offset + 2]);
}
return 0;
printflags(bootflags3, cmd, "LINUX_REBOOT_CMD_???");
if (cmd == LINUX_REBOOT_CMD_RESTART2) {
tprints(", ");
printflags(bootflags3, cmd, "LINUX_REBOOT_CMD_???");
if (cmd == LINUX_REBOOT_CMD_RESTART2) {
tprints(", ");
- printstr(tcp, tcp->u_arg[3], -1);
+ printstr(tcp, tcp->u_arg[3]);
case SIOCBRADDBR:
case SIOCBRDELBR:
tprints(", ");
case SIOCBRADDBR:
case SIOCBRDELBR:
tprints(", ");
- printstr(tcp, arg, -1);
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
else
if (syserror(tcp))
printaddr(tcp->u_arg[1]);
else
- printstr(tcp, tcp->u_arg[1], tcp->u_rval);
+ printstrn(tcp, tcp->u_arg[1], tcp->u_rval);
/* len */
tprintf(", %d", (int) tcp->u_arg[2]);
/* len */
tprintf(", %d", (int) tcp->u_arg[2]);
/* ioctls with an indirect parameter displayed as a char */
case TIOCSTI:
tprints(", ");
/* ioctls with an indirect parameter displayed as a char */
case TIOCSTI:
tprints(", ");
+ printstrn(tcp, arg, 1);
break;
/* ioctls with no parameters */
break;
/* ioctls with no parameters */
tprintf(", size=%u", p->size);
if (p->size > 0) {
tprints(", string=");
tprintf(", size=%u", p->size);
if (p->size > 0) {
tprints(", string=");
- printstr(tcp, (kernel_ureg_t) p->string, p->size);
+ printstrn(tcp, (kernel_ureg_t) p->string, p->size);
} else
# endif
tprintf(", value=%d, value64=%" PRId64, p->value, (int64_t) p->value64);
} else
# endif
tprintf(", value=%d, value64=%" PRId64, p->value, (int64_t) p->value64);
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
tprints(", ");
printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
tprints(", ");
printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
tprints(", ");
printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_arg[3]);
tprints(", ");
printflags(xattrflags, tcp->u_arg[4], "XATTR_???");
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
if (entering(tcp)) {
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
} else {
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_rval);
}
} else {
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_rval);
}
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
if (entering(tcp)) {
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
} else {
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_rval);
}
} else {
print_xattr_val(tcp, tcp->u_arg[2], tcp->u_arg[3], tcp->u_rval);
}
if (!size || syserror(tcp)) {
printaddr(addr);
} else {
if (!size || syserror(tcp)) {
printaddr(addr);
} else {
- printstr(tcp, addr, tcp->u_rval);
+ printstrn(tcp, addr, tcp->u_rval);
}
tprintf(", %lu", size);
}
}
tprintf(", %lu", size);
}
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
{
printpath(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
{
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
- printstr(tcp, tcp->u_arg[1], -1);
+ printstr(tcp, tcp->u_arg[1]);