From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andre Przywara Subject: [PATCH 2/2] xl: Fix adding additional config cmdline parameters Date: Fri, 10 Sep 2010 16:15:33 +0200 Message-ID: <4C8A3D85.1070001@amd.com> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010700070803020203050808" Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini , Ian Campbell Cc: xen-devel List-Id: xen-devel@lists.xenproject.org --------------010700070803020203050808 Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit Hi, when checking the size of the buffer we hold for additional config parameters passed on the command line we should take the size of the to-be-added string into account. While at it, rework the implementation to be cleaner and safer. Signed-off-by: Andre Przywara Regards, Andre. -- Andre Przywara AMD-Operating System Research Center (OSRC), Dresden, Germany Tel: +49 351 448-3567-12 --------------010700070803020203050808 Content-Type: text/x-patch; name="xl_fix_parameter_adding.patch" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="xl_fix_parameter_adding.patch" commit bc37ac1bedc704293117b9e3e50f18042c4e8254 Author: Andre Przywara Date: Fri Sep 10 14:26:55 2010 +0200 Improve adding additional config cmdline parameters When checking the size of the buffer we hold for additional config parameters passed on the command line we should take the size of the to-be-added string into account. While at it, rework the implementation to be cleaner and safer. Signed-off-by: Andre Przywara diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index f40de2b..8fe4e08 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -3251,21 +3251,17 @@ int main_create(int argc, char **argv) } } - memset(extra_config, 0, sizeof(extra_config)); - while (optind < argc) { - if ((p = strchr(argv[optind], '='))) { - if (strlen(extra_config) + 1 < sizeof(extra_config)) { - if (strlen(extra_config)) - strcat(extra_config, "\n"); - strcat(extra_config, argv[optind]); - } + extra_config[0] = '\0'; + for (p = extra_config; optind < argc; optind++) { + if (strchr(argv[optind], '=') != NULL) { + p += snprintf(p, sizeof(extra_config) - (p - extra_config), + "%s\n", argv[optind]); } else if (!filename) { filename = argv[optind]; } else { help("create"); return 2; } - optind++; } memset(&dom_info, 0, sizeof(dom_info)); --------------010700070803020203050808 Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel --------------010700070803020203050808--