|
@@ -56,7 +56,21 @@ static void show_error(char **error_str, const char *fmt, ...)
|
|
index = pevent_get_input_buf_ptr();
|
|
index = pevent_get_input_buf_ptr();
|
|
len = input ? strlen(input) : 0;
|
|
len = input ? strlen(input) : 0;
|
|
|
|
|
|
- error = malloc_or_die(MAX_ERR_STR_SIZE + (len*2) + 3);
|
|
|
|
|
|
+ error = malloc(MAX_ERR_STR_SIZE + (len*2) + 3);
|
|
|
|
+ if (error == NULL) {
|
|
|
|
+ /*
|
|
|
|
+ * Maybe it's due to len is too long.
|
|
|
|
+ * Retry without the input buffer part.
|
|
|
|
+ */
|
|
|
|
+ len = 0;
|
|
|
|
+
|
|
|
|
+ error = malloc(MAX_ERR_STR_SIZE);
|
|
|
|
+ if (error == NULL) {
|
|
|
|
+ /* no memory */
|
|
|
|
+ *error_str = NULL;
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
|
|
if (len) {
|
|
if (len) {
|
|
strcpy(error, input);
|
|
strcpy(error, input);
|