aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/main.c b/src/main.c
index 78702e50f..db6034bc5 100644
--- a/src/main.c
+++ b/src/main.c
@@ -762,13 +762,12 @@ static int formparse(char *input,
char *sep;
char *sep2;
- /* Preallocate contents to the length of input to make sure we don't
- overwrite anything. */
- contents = malloc(strlen(input));
- contents[0] = '\000';
-
- if(1 <= sscanf(input, "%255[^=]=%s", name, contents)) {
+ if((1 == sscanf(input, "%255[^=]=", name)) &&
+ (contp = strchr(input, '='))) {
/* the input was using the correct format */
+
+ /* Allocate the contents */
+ contents = strdup(contp+1);
contp = contents;
if('@' == contp[0]) {