Unabuse struct tcb.auxstr
As we've got a proper mechanism that parsers can use for storing private
data between entering and exiting stages, all cases of struct tcb.auxstr
abuse should go.
* btrfs.c (btrfs_ioctl): Use set_tcb_priv_ulong and get_tcb_priv_ulong
instead of abusing tcp->auxstr.
* file_handle.c (SYS_FUNC(name_to_handle_at)): Likewise.
* msghdr.c (SYS_FUNC(recvmsg)): Likewise.
* net.c (decode_sockname, SYS_FUNC(recvfrom)): Likewise.
* v4l2.c (print_v4l2_queryctrl): Likewise.
diff --git a/v4l2.c b/v4l2.c
index e80de55..237766e 100644
--- a/v4l2.c
+++ b/v4l2.c
@@ -571,14 +571,15 @@
tprints("}");
return 1;
}
- if (tcp->auxstr)
+ if (get_tcb_priv_ulong(tcp))
tprints(" => ");
}
- if (entering(tcp) || tcp->auxstr) {
+ if (entering(tcp) || get_tcb_priv_ulong(tcp)) {
#ifdef V4L2_CTRL_FLAG_NEXT_CTRL
- tcp->auxstr = (c.id & V4L2_CTRL_FLAG_NEXT_CTRL) ? "" : NULL;
- if (tcp->auxstr) {
+ const unsigned long next = c.id & V4L2_CTRL_FLAG_NEXT_CTRL;
+ set_tcb_priv_ulong(tcp, next);
+ if (next) {
tprints("V4L2_CTRL_FLAG_NEXT_CTRL|");
c.id &= ~V4L2_CTRL_FLAG_NEXT_CTRL;
}