summary refs log tree commit diff stats
path: root/qemu-io-cmds.c
diff options
context:
space:
mode:
authorConnor Kuehl <ckuehl@redhat.com>2021-04-21 16:23:43 -0500
committerMax Reitz <mreitz@redhat.com>2021-05-14 16:14:10 +0200
commit2b99cfce08da53a07e86271747fe465556ac7eb4 (patch)
tree8725f161fe4add6183eab05404e7b8a601d387fd /qemu-io-cmds.c
parentf7afa7daa08c09d7c8435a95a13f6bd9dd11255e (diff)
downloadfocaccia-qemu-2b99cfce08da53a07e86271747fe465556ac7eb4.tar.gz
focaccia-qemu-2b99cfce08da53a07e86271747fe465556ac7eb4.zip
block/rbd: Add an escape-aware strchr helper
Sometimes the parser needs to further split a token it has collected
from the token input stream. Right now, it does a cursory check to see
if the relevant characters appear in the token to determine if it should
break it down further.

However, qemu_rbd_next_tok() will escape characters as it removes tokens
from the token stream and plain strchr() won't. This can make the
initial strchr() check slightly misleading since it implies
qemu_rbd_next_tok() will find the token and split on it, except the
reality is that qemu_rbd_next_tok() will pass over it if it is escaped.

Use a custom strchr to avoid mixing escaped and unescaped string
operations. Furthermore, this code is identical to how
qemu_rbd_next_tok() seeks its next token, so incorporate this custom
strchr into the body of that function to reduce duplication.

Reported-by: Han Han <hhan@redhat.com>
Fixes: https://bugzilla.redhat.com/1873913
Signed-off-by: Connor Kuehl <ckuehl@redhat.com>
Message-Id: <20210421212343.85524-3-ckuehl@redhat.com>
Reviewed-by: Stefano Garzarella <sgarzare@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'qemu-io-cmds.c')
0 files changed, 0 insertions, 0 deletions