len = 128;
pos = 0;
retval = malloc (len);
+ if (retval == NULL)
+ return NULL;
+
*end_of_file = FALSE;
while (TRUE)
if (pos % 128 == 127)
{
len = len + 128;
- retval = realloc (retval, len);
+ unsigned char *tmp = realloc (retval, len);
+ if (tmp == NULL)
+ {
+ free(retval);
+ return NULL;
+ }
+ retval = tmp;
}
}
errno = 0;
retval = strtol (number_string, NULL, 10);
- if ((retval < INT_MIN) || (retval > INT_MAX) || (errno != 0))
+ if ((retval == LONG_MIN) || (retval == LONG_MAX) || (errno != 0))
return -1;
}
return XDG_MIME_MAGIC_ERROR;
buffer = (char *)_xdg_mime_magic_read_to_newline (magic_file, &end_of_file);
- if (end_of_file)
+ if (end_of_file) {
+ if (buffer)
+ free(buffer);
+
return XDG_MIME_MAGIC_EOF;
+ }
end_ptr = buffer;
while (*end_ptr != ']' && *end_ptr != '\000' && *end_ptr != '\n')
case XDG_MIME_MAGIC_ERROR:
state = _xdg_mime_magic_parse_error (magic_file);
break;
- case XDG_MIME_MAGIC_EOF:
default:
/* Make the compiler happy */
assert (0);