diff options
author | Egor Bychin <e.bychin@drweb.com> | 2021-10-07 13:01:06 +0300 |
---|---|---|
committer | Egor Bychin <e.bychin@drweb.com> | 2021-10-07 13:01:06 +0300 |
commit | 1c521abcb7a6f8319ad5cfd9f3138ab12b39d5f0 (patch) | |
tree | 5a6fcf7529c648cd2db73a36838ecf7c26e42b78 | |
parent | 13184863999fa175bf2e6283949c96fd88111efc (diff) |
add OOM handling in mimemagic
-rw-r--r-- | src/xdgmimemagic.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/xdgmimemagic.c b/src/xdgmimemagic.c index fd49fa8..712487f 100644 --- a/src/xdgmimemagic.c +++ b/src/xdgmimemagic.c @@ -103,6 +103,8 @@ _xdg_mime_magic_matchlet_new (void) XdgMimeMagicMatchlet *matchlet; matchlet = malloc (sizeof (XdgMimeMagicMatchlet)); + if (matchlet == NULL) + return NULL; matchlet->indent = 0; matchlet->offset = 0; @@ -355,6 +357,11 @@ _xdg_mime_magic_parse_magic_line (FILE *magic_file, return XDG_MIME_MAGIC_ERROR; matchlet = _xdg_mime_magic_matchlet_new (); + + /* OOM */ + if (matchlet == NULL) + return XDG_MIME_MAGIC_ERROR; + matchlet->indent = indent; matchlet->offset = _xdg_mime_magic_read_a_number (magic_file, &end_of_file); if (end_of_file) @@ -767,6 +774,11 @@ _xdg_mime_magic_read_magic_file (XdgMimeMagic *mime_magic, { case XDG_MIME_MAGIC_SECTION: match = _xdg_mime_magic_match_new (); + + /* OOM */ + if (match == NULL) + return; + state = _xdg_mime_magic_parse_header (magic_file, match); if (state == XDG_MIME_MAGIC_EOF || state == XDG_MIME_MAGIC_ERROR) _xdg_mime_magic_match_free (match); |