From: Kevin Wolf <kwolf@redhat.com>
To: anthony@codemonkey.ws
Cc: kwolf@redhat.com, qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH 18/30] block: protect path_has_protocol from filenames with colons
Date: Thu, 10 May 2012 13:49:22 +0200 [thread overview]
Message-ID: <1336650574-12835-19-git-send-email-kwolf@redhat.com> (raw)
In-Reply-To: <1336650574-12835-1-git-send-email-kwolf@redhat.com>
From: Paolo Bonzini <pbonzini@redhat.com>
path_has_protocol will erroneously return "true" if the colon is part
of a filename. These names are common with stable device names produced
by udev. We cannot fully protect against this in case the filename
does not have a path component (e.g. if the current directory is
/dev/disk/by-path), but in the common case there will be a slash before
and path_has_protocol can easily detect that and return false.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
block.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/block.c b/block.c
index 0fb188f..8eeb519 100644
--- a/block.c
+++ b/block.c
@@ -198,14 +198,19 @@ static void bdrv_io_limits_intercept(BlockDriverState *bs,
/* check if the path starts with "<protocol>:" */
static int path_has_protocol(const char *path)
{
+ const char *p;
+
#ifdef _WIN32
if (is_windows_drive(path) ||
is_windows_drive_prefix(path)) {
return 0;
}
+ p = path + strcspn(path, ":/\\");
+#else
+ p = path + strcspn(path, ":/");
#endif
- return strchr(path, ':') != NULL;
+ return *p == ':';
}
int path_is_absolute(const char *path)
--
1.7.6.5
next prev parent reply other threads:[~2012-05-10 11:50 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-05-10 11:49 [Qemu-devel] [PULL 00/30] Block patches for 1.1 Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 01/30] block: add the support to drain throttled requests Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 02/30] block: add mode argument to blockdev-snapshot-sync Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 03/30] block: fail live snapshot if disk has no medium Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 04/30] block: push bdrv_change_backing_file error checking up from drivers Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 05/30] block: update in-memory backing file and format Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 06/30] block: open backing file as read-only when probing for size Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 07/30] block: fix allocation size for dirty bitmap Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 08/30] qemu-iotests: strip spaces from qemu-img/qemu-io/qemu command lines Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 09/30] qtest: Add function to send QMP commands Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 10/30] qtest: Add floppy test Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 11/30] block: fix snapshot on QED Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 12/30] block: another bdrv_append fix Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 13/30] block: do not reuse the backing file across bdrv_close/bdrv_open Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 14/30] block: fully delete bs->file when closing Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 15/30] block: add block_job_sleep_ns Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 16/30] block: wait for job callback in block_job_cancel_sync Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 17/30] block: simplify path_is_absolute Kevin Wolf
2012-05-10 11:49 ` Kevin Wolf [this message]
2012-05-10 11:49 ` [Qemu-devel] [PATCH 19/30] block: move field reset from bdrv_open_common to bdrv_close Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 20/30] qemu-img: make "info" backing file output correct and easier to use Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 21/30] qemu-io: correctly print non-integer values as decimals Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 22/30] qemu-io: fix the alloc command Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 23/30] stream: fix sectors not allocated test Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 24/30] stream: add testcase for partial streaming Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 25/30] stream: pass new base image format to bdrv_change_backing_file Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 26/30] stream: fix HMP block_job_set_speed Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 27/30] stream: fix ratelimiting corner case Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 28/30] stream: do not copy unallocated sectors from the base Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 29/30] tests/Makefile: Add missing $(EXESUF) Kevin Wolf
2012-05-10 11:49 ` [Qemu-devel] [PATCH 30/30] declare ECANCELED on all machines Kevin Wolf
2012-05-14 15:03 ` [Qemu-devel] [PULL 00/30] Block patches for 1.1 Anthony Liguori
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1336650574-12835-19-git-send-email-kwolf@redhat.com \
--to=kwolf@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).