xl: Fix 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 <andre.przywara@amd.com>
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
Andre Przywara committed 2010-09-10 18:57:47 +01:00
1 parent 5ab30725b1
commit a48b2967f9
1 file changed
+5 -9
+5 -9
View File
@@ -3179,21 +3179,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));
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.