file = fopen (file_name, "r");
if (file == NULL)
- {
- free (data);
- return XDG_MIME_TYPE_UNKNOWN;
- }
+ return XDG_MIME_TYPE_UNKNOWN;
if (!statbuf)
{
fd = fileno(file);
if (fstat (fd, &buf) != 0)
- return XDG_MIME_TYPE_UNKNOWN;
+ {
+ fclose(file);
+ return XDG_MIME_TYPE_UNKNOWN;
+ }
statbuf = &buf;
}
if (!S_ISREG (statbuf->st_mode))
- return XDG_MIME_TYPE_UNKNOWN;
+ {
+ fclose(file);
+ return XDG_MIME_TYPE_UNKNOWN;
+ }
/* FIXME: Need to make sure that max_extent isn't totally broken. This could
* be large and need getting from a stream instead of just reading it all
max_extent = _xdg_mime_magic_get_buffer_extents (global_magic);
data = malloc (max_extent);
if (data == NULL)
- return XDG_MIME_TYPE_UNKNOWN;
-
+ {
+ fclose(file);
+ return XDG_MIME_TYPE_UNKNOWN;
+ }
+
bytes_read = fread (data, 1, max_extent, file);
if (ferror (file))
{
file = fopen (file_name, "r");
if (file == NULL)
- {
- free (data);
- return XDG_MIME_TYPE_UNKNOWN;
- }
+ return XDG_MIME_TYPE_UNKNOWN;
if (!statbuf)
{
fd = fileno(file);
if (fstat (fd, &buf) != 0)
- return XDG_MIME_TYPE_UNKNOWN;
+ {
+ fclose(file);
+ return XDG_MIME_TYPE_UNKNOWN;
+ }
statbuf = &buf;
}
if (!S_ISREG (statbuf->st_mode))
- return XDG_MIME_TYPE_UNKNOWN;
+ {
+ fclose(file);
+ return XDG_MIME_TYPE_UNKNOWN;
+ }
/* FIXME: Need to make sure that max_extent isn't totally broken. This could
* be large and need getting from a stream instead of just reading it all
max_extent = _xdg_mime_cache_get_max_buffer_extents ();
data = malloc (max_extent);
if (data == NULL)
- return XDG_MIME_TYPE_UNKNOWN;
+ {
+ fclose(file);
+ return XDG_MIME_TYPE_UNKNOWN;
+ }
bytes_read = fread (data, 1, max_extent, file);
if (ferror (file))
* If reconstruction is not needed, just exit function */
fd = fileno(globs2);
if (fstat(fd, &globs2_stat) ||
- globs2_stat.st_mtime <= mtil->globs2_mtime ) return;
+ globs2_stat.st_mtime <= mtil->globs2_mtime ) {
+ fclose(globs2);
+ return;
+ }
/* clean old mtil */
mime_type_info **mti;