From: P J P <ppandit@redhat.com>
To: QEMU Developers <qemu-devel@nongnu.org>
Cc: "Li Qiang" <liq3ea@gmail.com>, "Jason Wang" <jasowang@redhat.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Prasad J Pandit" <pjp@fedoraproject.org>
Subject: [Qemu-devel] [PATCH v4 3/3] net: tap: replace snprintf with g_strdup_printf calls
Date: Tue, 23 Jul 2019 16:17:54 +0530 [thread overview]
Message-ID: <20190723104754.29324-4-ppandit@redhat.com> (raw)
In-Reply-To: <20190723104754.29324-1-ppandit@redhat.com>
From: Prasad J Pandit <pjp@fedoraproject.org>
When invoking qemu-bridge-helper in 'net_bridge_run_helper',
instead of using fixed sized buffers, use dynamically allocated
ones initialised and returned by g_strdup_printf().
Signed-off-by: Prasad J Pandit <pjp@fedoraproject.org>
---
net/tap.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
Update v4: only replace snprintf with g_strdup_printf calls
-> https://lists.nongnu.org/archive/html/qemu-devel/2019-07/msg00578.html
diff --git a/net/tap.c b/net/tap.c
index e8aadd8d4b..fc38029f41 100644
--- a/net/tap.c
+++ b/net/tap.c
@@ -498,9 +498,9 @@ static int net_bridge_run_helper(const char *helper, const char *bridge,
}
if (pid == 0) {
int open_max = sysconf(_SC_OPEN_MAX), i;
- char fd_buf[6+10];
- char br_buf[6+IFNAMSIZ] = {0};
- char helper_cmd[PATH_MAX + sizeof(fd_buf) + sizeof(br_buf) + 15];
+ char *fd_buf = NULL;
+ char *br_buf = NULL;
+ char *helper_cmd = NULL;
for (i = 3; i < open_max; i++) {
if (i != sv[1]) {
@@ -508,17 +508,17 @@ static int net_bridge_run_helper(const char *helper, const char *bridge,
}
}
- snprintf(fd_buf, sizeof(fd_buf), "%s%d", "--fd=", sv[1]);
+ fd_buf = g_strdup_printf("%s%d", "--fd=", sv[1]);
if (strrchr(helper, ' ') || strrchr(helper, '\t')) {
/* assume helper is a command */
if (strstr(helper, "--br=") == NULL) {
- snprintf(br_buf, sizeof(br_buf), "%s%s", "--br=", bridge);
+ br_buf = g_strdup_printf("%s%s", "--br=", bridge);
}
- snprintf(helper_cmd, sizeof(helper_cmd), "%s %s %s %s",
- helper, "--use-vnet", fd_buf, br_buf);
+ helper_cmd = g_strdup_printf("%s %s %s %s", helper,
+ "--use-vnet", fd_buf, br_buf ? br_buf : "");
parg = args;
*parg++ = (char *)"sh";
@@ -527,10 +527,11 @@ static int net_bridge_run_helper(const char *helper, const char *bridge,
*parg++ = NULL;
execv("/bin/sh", args);
+ g_free(helper_cmd);
} else {
/* assume helper is just the executable path name */
- snprintf(br_buf, sizeof(br_buf), "%s%s", "--br=", bridge);
+ br_buf = g_strdup_printf("%s%s", "--br=", bridge);
parg = args;
*parg++ = (char *)helper;
@@ -541,6 +542,8 @@ static int net_bridge_run_helper(const char *helper, const char *bridge,
execv(helper, args);
}
+ g_free(fd_buf);
+ g_free(br_buf);
_exit(1);
} else {
--
2.21.0
next prev parent reply other threads:[~2019-07-23 10:50 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-23 10:47 [Qemu-devel] [PATCH v4 0/3] restrict bridge interface name to IFNAMSIZ P J P
2019-07-23 10:47 ` [Qemu-devel] [PATCH v4 1/3] qemu-bridge-helper: restrict " P J P
2019-07-23 13:10 ` Stefan Hajnoczi
2019-07-23 13:12 ` Daniel P. Berrangé
2019-07-23 15:07 ` Li Qiang
2019-07-23 10:47 ` [Qemu-devel] [PATCH v4 2/3] qemu-bridge-helper: move repeating code in parse_acl_file P J P
2019-07-23 13:00 ` Stefan Hajnoczi
2019-07-23 13:12 ` Daniel P. Berrangé
2019-07-23 15:07 ` Li Qiang
2019-07-23 10:47 ` P J P [this message]
2019-07-23 13:03 ` [Qemu-devel] [PATCH v4 3/3] net: tap: replace snprintf with g_strdup_printf calls Stefan Hajnoczi
2019-07-23 15:43 ` Li Qiang
2019-07-24 5:48 ` P J P
2019-07-29 15:04 ` Stefan Hajnoczi
2019-07-31 4:58 ` Jason Wang
2019-07-31 6:42 ` P J P
2019-07-31 6:59 ` Jason Wang
2019-07-31 9:23 ` P J P
2019-07-23 13:13 ` Daniel P. Berrangé
2019-07-23 17:44 ` [Qemu-devel] [PATCH v4 0/3] restrict bridge interface name to IFNAMSIZ no-reply
2019-07-25 4:01 ` Jason Wang
2019-07-25 10:20 ` P J P
2019-07-26 10:26 ` Jason Wang
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=20190723104754.29324-4-ppandit@redhat.com \
--to=ppandit@redhat.com \
--cc=berrange@redhat.com \
--cc=jasowang@redhat.com \
--cc=liq3ea@gmail.com \
--cc=pjp@fedoraproject.org \
--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).