diff options
author | Christian Grothoff <christian@grothoff.org> | 2017-10-15 20:35:05 +0200 |
---|---|---|
committer | Christian Grothoff <christian@grothoff.org> | 2017-10-15 20:35:05 +0200 |
commit | 85daaa3242c01d9c116626fbe90bcc5ea5a2e4d0 (patch) | |
tree | 5b29bb2b3a5ed513de31b63ed440931730255fc0 | |
parent | 73e1679e73906c1291f127593b4cdf3db772a606 (diff) | |
download | libextractor-85daaa3242c01d9c116626fbe90bcc5ea5a2e4d0.tar.gz libextractor-85daaa3242c01d9c116626fbe90bcc5ea5a2e4d0.zip |
handle allocation failure in gstreamer plugin
-rw-r--r-- | src/plugins/gstreamer_extractor.c | 41 |
1 files changed, 27 insertions, 14 deletions
diff --git a/src/plugins/gstreamer_extractor.c b/src/plugins/gstreamer_extractor.c index 2f47adf..31568a7 100644 --- a/src/plugins/gstreamer_extractor.c +++ b/src/plugins/gstreamer_extractor.c | |||
@@ -1038,17 +1038,23 @@ send_structure_foreach (GQuark field_id, | |||
1038 | switch (ps->st) | 1038 | switch (ps->st) |
1039 | { | 1039 | { |
1040 | case STREAM_TYPE_AUDIO: | 1040 | case STREAM_TYPE_AUDIO: |
1041 | if (NULL == audio_quarks) | ||
1042 | return FALSE; | ||
1041 | for (quark = audio_quarks; *quark != 0; quark++) | 1043 | for (quark = audio_quarks; *quark != 0; quark++) |
1042 | if (*quark == field_id) | 1044 | if (*quark == field_id) |
1043 | return TRUE; | 1045 | return TRUE; |
1044 | break; | 1046 | break; |
1045 | case STREAM_TYPE_VIDEO: | 1047 | case STREAM_TYPE_VIDEO: |
1046 | case STREAM_TYPE_IMAGE: | 1048 | case STREAM_TYPE_IMAGE: |
1049 | if (NULL == video_quarks) | ||
1050 | return FALSE; | ||
1047 | for (quark = video_quarks; *quark != 0; quark++) | 1051 | for (quark = video_quarks; *quark != 0; quark++) |
1048 | if (*quark == field_id) | 1052 | if (*quark == field_id) |
1049 | return TRUE; | 1053 | return TRUE; |
1050 | break; | 1054 | break; |
1051 | case STREAM_TYPE_SUBTITLE: | 1055 | case STREAM_TYPE_SUBTITLE: |
1056 | if (NULL == subtitle_quarks) | ||
1057 | return FALSE; | ||
1052 | for (quark = subtitle_quarks; *quark != 0; quark++) | 1058 | for (quark = subtitle_quarks; *quark != 0; quark++) |
1053 | if (*quark == field_id) | 1059 | if (*quark == field_id) |
1054 | return TRUE; | 1060 | return TRUE; |
@@ -2216,22 +2222,29 @@ gstreamer_init () | |||
2216 | 0, "GStreamer-based libextractor plugin"); | 2222 | 0, "GStreamer-based libextractor plugin"); |
2217 | 2223 | ||
2218 | audio_quarks = g_new0 (GQuark, 4); | 2224 | audio_quarks = g_new0 (GQuark, 4); |
2219 | audio_quarks[0] = g_quark_from_string ("rate"); | 2225 | if (NULL != audio_quarks) |
2220 | audio_quarks[1] = g_quark_from_string ("channels"); | 2226 | { |
2221 | audio_quarks[2] = g_quark_from_string ("depth"); | 2227 | audio_quarks[0] = g_quark_from_string ("rate"); |
2222 | audio_quarks[3] = g_quark_from_string (NULL); | 2228 | audio_quarks[1] = g_quark_from_string ("channels"); |
2223 | 2229 | audio_quarks[2] = g_quark_from_string ("depth"); | |
2230 | audio_quarks[3] = g_quark_from_string (NULL); | ||
2231 | } | ||
2224 | video_quarks = g_new0 (GQuark, 6); | 2232 | video_quarks = g_new0 (GQuark, 6); |
2225 | video_quarks[0] = g_quark_from_string ("width"); | 2233 | if (NULL != video_quarks) |
2226 | video_quarks[1] = g_quark_from_string ("height"); | 2234 | { |
2227 | video_quarks[2] = g_quark_from_string ("framerate"); | 2235 | video_quarks[0] = g_quark_from_string ("width"); |
2228 | video_quarks[3] = g_quark_from_string ("max-framerate"); | 2236 | video_quarks[1] = g_quark_from_string ("height"); |
2229 | video_quarks[4] = g_quark_from_string ("pixel-aspect-ratio"); | 2237 | video_quarks[2] = g_quark_from_string ("framerate"); |
2230 | video_quarks[5] = g_quark_from_string (NULL); | 2238 | video_quarks[3] = g_quark_from_string ("max-framerate"); |
2231 | 2239 | video_quarks[4] = g_quark_from_string ("pixel-aspect-ratio"); | |
2240 | video_quarks[5] = g_quark_from_string (NULL); | ||
2241 | } | ||
2232 | subtitle_quarks = g_new0 (GQuark, 2); | 2242 | subtitle_quarks = g_new0 (GQuark, 2); |
2233 | subtitle_quarks[0] = g_quark_from_string ("language-code"); | 2243 | if (NULL != subtitle_quarks) |
2234 | subtitle_quarks[1] = g_quark_from_string (NULL); | 2244 | { |
2245 | subtitle_quarks[0] = g_quark_from_string ("language-code"); | ||
2246 | subtitle_quarks[1] = g_quark_from_string (NULL); | ||
2247 | } | ||
2235 | 2248 | ||
2236 | duration_quark = g_quark_from_string ("duration"); | 2249 | duration_quark = g_quark_from_string ("duration"); |
2237 | 2250 | ||