From: Michael Roth <mdroth@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: peter.maydell@linaro.org,
"Michael Roth" <mdroth@linux.vnet.ibm.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>
Subject: [Qemu-devel] [PATCH 12/26] qga: make split_list() return allocated strings
Date: Tue, 1 Sep 2015 13:38:49 -0500 [thread overview]
Message-ID: <1441132743-26228-13-git-send-email-mdroth@linux.vnet.ibm.com> (raw)
In-Reply-To: <1441132743-26228-1-git-send-email-mdroth@linux.vnet.ibm.com>
From: Marc-André Lureau <marcandre.lureau@redhat.com>
In order to avoid any confusion, let's allocate new strings when
splitting.
Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Reviewed-by: Denis V. Lunev <den@openvz.org>
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
---
qga/commands-posix.c | 6 +++---
qga/commands-win32.c | 4 ++--
qga/main.c | 22 +++++++++-------------
3 files changed, 14 insertions(+), 18 deletions(-)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index 675f4b4..fc4fc72 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -2454,7 +2454,7 @@ GList *ga_command_blacklist_init(GList *blacklist)
char **p = (char **)list;
while (*p) {
- blacklist = g_list_append(blacklist, *p++);
+ blacklist = g_list_append(blacklist, g_strdup(*p++));
}
}
#endif
@@ -2468,13 +2468,13 @@ GList *ga_command_blacklist_init(GList *blacklist)
char **p = (char **)list;
while (*p) {
- blacklist = g_list_append(blacklist, *p++);
+ blacklist = g_list_append(blacklist, g_strdup(*p++));
}
}
#endif
#if !defined(CONFIG_FSTRIM)
- blacklist = g_list_append(blacklist, (char *)"guest-fstrim");
+ blacklist = g_list_append(blacklist, g_strdup("guest-fstrim"));
#endif
return blacklist;
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index a7822d5..1152c46 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -1233,7 +1233,7 @@ GList *ga_command_blacklist_init(GList *blacklist)
char **p = (char **)list_unsupported;
while (*p) {
- blacklist = g_list_append(blacklist, *p++);
+ blacklist = g_list_append(blacklist, g_strdup(*p++));
}
if (!vss_init(true)) {
@@ -1244,7 +1244,7 @@ GList *ga_command_blacklist_init(GList *blacklist)
p = (char **)list;
while (*p) {
- blacklist = g_list_append(blacklist, *p++);
+ blacklist = g_list_append(blacklist, g_strdup(*p++));
}
}
diff --git a/qga/main.c b/qga/main.c
index e75022c..a7df6c8 100644
--- a/qga/main.c
+++ b/qga/main.c
@@ -921,22 +921,17 @@ static void ga_print_cmd(QmpCommand *cmd, void *opaque)
printf("%s\n", qmp_command_name(cmd));
}
-static GList *split_list(gchar *str, const gchar separator)
+static GList *split_list(const gchar *str, const gchar *delim)
{
GList *list = NULL;
- int i, j, len;
+ int i;
+ gchar **strv;
- for (j = 0, i = 0, len = strlen(str); i < len; i++) {
- if (str[i] == separator) {
- str[i] = 0;
- list = g_list_append(list, &str[j]);
- j = i + 1;
- }
- }
-
- if (j < i) {
- list = g_list_append(list, &str[j]);
+ strv = g_strsplit(str, delim, -1);
+ for (i = 0; strv[i]; i++) {
+ list = g_list_prepend(list, strv[i]);
}
+ g_free(strv);
return list;
}
@@ -1021,7 +1016,7 @@ int main(int argc, char **argv)
qmp_for_each_command(ga_print_cmd, NULL);
exit(EXIT_SUCCESS);
}
- blacklist = g_list_concat(blacklist, split_list(optarg, ','));
+ blacklist = g_list_concat(blacklist, split_list(optarg, ","));
break;
}
#ifdef _WIN32
@@ -1201,6 +1196,7 @@ int main(int argc, char **argv)
}
#endif
+ g_list_free_full(ga_state->blacklist, g_free);
ga_command_state_cleanup_all(ga_state->command_state);
ga_channel_free(ga_state->channel);
--
1.9.1
next prev parent reply other threads:[~2015-09-01 18:39 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-09-01 18:38 [Qemu-devel] [PULL v2 00/26] qemu-ga patch queue for 2015-09-01 Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 01/26] qemu-ga: Add .msi files to .gitignore Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 02/26] qemu-ga: Two MSI related cosmetic changes Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 03/26] qemu-ga: Fixed GUID capitalization Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 04/26] qemu-ga: Minor cosmetic changes to the WXS file Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 05/26] qemu-ga: Created a separate component for each installed file in the MSI Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 06/26] qemu-ga: Prevent QEMU-GA VSS provider from being unregistered on MSI reinstall Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 07/26] qemu-ga: Fixed paths issue with MSI build Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 08/26] configure: qemu-ga: report MSI install support in summary Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 09/26] qga: misc spelling Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 10/26] qga: use exit() when parsing options Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 11/26] qga: move string split in separate function Michael Roth
2015-09-01 18:38 ` Michael Roth [this message]
2015-09-01 18:38 ` [Qemu-devel] [PATCH 13/26] qga: rename 'path' to 'channel_path' Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 14/26] qga: copy argument strings Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 15/26] qga: move option parsing to separate function Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 16/26] qga: fill default options in main() Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 17/26] qga: move agent run in a separate function Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 18/26] qga: free a bit more Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 19/26] qga: add an optional qemu-ga.conf system configuration Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 20/26] qga: add --dump-conf option Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 21/26] qga: start a man page Michael Roth
2015-09-01 18:38 ` [Qemu-devel] [PATCH 22/26] qemu-ga: implement win32 guest-set-user-password Michael Roth
2015-09-01 18:39 ` [Qemu-devel] [PATCH 23/26] configure: qemu-ga: move MSI installer probe after qga probe Michael Roth
2015-09-01 18:39 ` [Qemu-devel] [PATCH 24/26] configure: qemu-ga: explicitly enable qemu-ga MSI support when probed Michael Roth
2015-09-01 18:39 ` [Qemu-devel] [PATCH 25/26] build: qemu-ga: fix VSS dependencies Michael Roth
2015-09-01 18:39 ` [Qemu-devel] [PATCH 26/26] Makefile: qemu-ga: fix msi target error message Michael Roth
2015-09-03 8:50 ` [Qemu-devel] [PULL v2 00/26] qemu-ga patch queue for 2015-09-01 Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2015-09-01 17:00 [Qemu-devel] [PULL " Michael Roth
2015-09-01 17:00 ` [Qemu-devel] [PATCH 12/26] qga: make split_list() return allocated strings Michael Roth
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=1441132743-26228-13-git-send-email-mdroth@linux.vnet.ibm.com \
--to=mdroth@linux.vnet.ibm.com \
--cc=marcandre.lureau@redhat.com \
--cc=peter.maydell@linaro.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).