Fix crash in mime acl when a parameter is zero-length
[exim.git] / src / src / mime.c
index 95d3da4723cf5de2115014dfebb73ae728639ac0..ab701f2a682e59f0adeeefb24e4e9344b9c792fd 100644 (file)
@@ -620,12 +620,18 @@ NEXT_PARAM_SEARCH:
                else
                  param_value = string_cat(param_value, &size, &ptr, q++, 1);
                }
-             param_value[ptr++] = '\0';
-             param_value_len = ptr;
-
-             param_value = rfc2047_decode(param_value, check_rfc2047_length, NULL, 32, &param_value_len, &q);
-             debug_printf("Found %s MIME parameter in %s header, value is '%s'\n", mp->name, mime_header_list[i].name, param_value);
-             *((uschar **)(mp->value)) = param_value;
+             if (param_value)
+               {
+               param_value[ptr++] = '\0';
+               param_value_len = ptr;
+
+               param_value = rfc2047_decode(param_value,
+                     check_rfc2047_length, NULL, 32, &param_value_len, &q);
+               debug_printf("Found %s MIME parameter in %s header, "
+                     "value is '%s'\n", mp->name, mime_header_list[i].name,
+                     param_value);
+               }
+             *mp->value = param_value;
              p += (mp->namelen + param_value_len + 1);
              goto NEXT_PARAM_SEARCH;
            }