Projects
Essentials
gpac
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 36
View file
gpac.changes
Changed
@@ -1,4 +1,11 @@ ------------------------------------------------------------------- +Mon Apr 24 17:46:59 UTC 2023 - Luigi Baldoni <aloisio@gmx.com> + +- Update to version 2.2.1 + Security: + * Backport of various CVE fixes + +------------------------------------------------------------------- Mon Dec 19 17:04:17 UTC 2022 - Luigi Baldoni <aloisio@gmx.com> - Update to version 2.2.0
View file
gpac.spec
Changed
@@ -1,7 +1,7 @@ # # spec file for package gpac # -# Copyright (c) 2022 Packman Team <packman@links2linux.de> +# Copyright (c) 2023 Packman Team <packman@links2linux.de> # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties @@ -19,7 +19,7 @@ %define sover 12 Name: gpac -Version: 2.2.0 +Version: 2.2.1 Release: 0 Summary: A multimedia framework covering MPEG-4, VRML/X3D and SVG License: LGPL-2.1-or-later
View file
gpac-2.2.0.tar.gz/Changelog -> gpac-2.2.1.tar.gz/Changelog
Changed
@@ -1,3 +1,9 @@ +# 24/04/2023: GPAC 2.2.1 + +## Security +- Backport of various CVE fixes + + # 19/12/2022: GPAC 2.2 ## Media Formats
View file
gpac-2.2.0.tar.gz/README.md -> gpac-2.2.1.tar.gz/README.md
Changed
@@ -25,7 +25,7 @@ # GPAC Introduction -Latest Release: 2.2 +Latest Release: 2.2.1 GPAC is an open-source multimedia framework focused on modularity and standards compliance. GPAC provides tools to process, inspect, package, stream, playback and interact with media content. Such content can be any combination of audio, video, subtitles, metadata, scalable graphics, encrypted media, 2D/3D graphics and ECMAScript. @@ -118,4 +118,3 @@ - DASH event support - Better TTML2 / SMPTE ST 2052-1 support - GUI cleanup ? -
View file
gpac-2.2.0.tar.gz/applications/gpac/ios-Info.plist -> gpac-2.2.1.tar.gz/applications/gpac/ios-Info.plist
Changed
@@ -37,11 +37,11 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>2.2</string> + <string>2.2.1</string> <key>CFBundleSignature</key> <string>gpac</string> <key>CFBundleVersion</key> - <string>12.10.0</string> + <string>12.10.1</string> <key>NSCameraUsageDescription</key> <string>GPAC needs camera access to handle this URL</string> <key>NSMicrophoneUsageDescription</key>
View file
gpac-2.2.0.tar.gz/debian/changelog -> gpac-2.2.1.tar.gz/debian/changelog
Changed
@@ -1,4 +1,4 @@ -gpac (2.2) stable; urgency=low +gpac (2.2.1) stable; urgency=low * Initial release - see https://github.com/gpac/gpac/releases for more details
View file
gpac-2.2.0.tar.gz/debian/control -> gpac-2.2.1.tar.gz/debian/control
Changed
@@ -23,11 +23,10 @@ Architecture: any Section: libdevel Depends: gpac -Replaces: gpac (<= 2.0.0) +Replaces: gpac (<= 2.2.0) Description: Framework for production, encoding, delivery and interactive playback of multimedia content GPAC supports many AV codecs, multimedia containers (MP4,fMP4, TS, avi, mov, mpg, mkv ...), complex presentation formats (MPEG-4 Systems, SVG Tiny 1.2, VRML/X3D) and subtitles (SRT, WebVTT, TTXT/TX3G, TTML). Supported inputs and outputs are pipes, UDP/TCP/UN sockets, local files, HTTP, DASH/HLS, RTP/RTSP, MPEG-2 TS, ATSC 3.0 ROUTE sessions, desktop grabbing, camera/microphone inputs and any input format supported by FFmpeg. GPAC features a highly configurable media processing pipeline extensible through JavaScript, and can be embedded in Python or NodeJS applications. -
View file
gpac-2.2.0.tar.gz/gpac.spec -> gpac-2.2.1.tar.gz/gpac.spec
Changed
@@ -1,11 +1,11 @@ # $Id: gpac.spec,v 1.5 2008-12-02 18:04:42 jeanlf Exp $ Summary: Framework for production, encoding, delivery and interactive playback of multimedia content Name: gpac -Version: 2.2 -Release: 2.2 +Version: 2.2.1 +Release: 2.2.1 License: LGPL Group: Applications/Multimedia -Source0: gpac-2.2.tar.gz +Source0: gpac-2.2.1.tar.gz URL: http://gpac.io/ BuildRoot: %{_tmppath}/%{name}-root Requires: SDL
View file
gpac-2.2.0.tar.gz/include/gpac/version.h -> gpac-2.2.1.tar.gz/include/gpac/version.h
Changed
@@ -42,7 +42,7 @@ * SONAME versions must be digits (not strings) */ /*! Macro giving GPAC version name expressed as a printable string*/ -#define GPAC_VERSION "2.2" +#define GPAC_VERSION "2.2.1" // WARNING: when bumping, reflect the changes in share/python/libgpac.py !! /*! ABI Major number of libgpac */ @@ -50,7 +50,7 @@ /*! ABI Minor number of libgpac */ #define GPAC_VERSION_MINOR 10 /*! ABI Micro number of libgpac */ -#define GPAC_VERSION_MICRO 0 +#define GPAC_VERSION_MICRO 1 /*! gets GPAC full version including GIT revision \return GPAC full version
View file
gpac-2.2.0.tar.gz/packagers/osx/GPAC.app/Contents/Info.plist -> gpac-2.2.1.tar.gz/packagers/osx/GPAC.app/Contents/Info.plist
Changed
@@ -516,7 +516,7 @@ <string>yes</string> </dict> <key>CFBundleShortVersionString</key> - <string>2.2</string> + <string>2.2.1</string> <key>CFBundleSignature</key> <string>gpac</string> <key>CFBundleURLTypes</key> @@ -567,7 +567,7 @@ <key>NSMicrophoneUsageDescription</key> <string>GPAC needs microphone access to handle this URL</string> <key>CFBundleVersion</key> - <string>12.10.0</string> + <string>12.10.1</string> <key>LSMinimumSystemVersion</key> <string>10.5.0</string> <key>NSMainNibFile</key>
View file
gpac-2.2.0.tar.gz/packagers/win32_64/nsis/gpac_installer.nsi -> gpac-2.2.1.tar.gz/packagers/win32_64/nsis/gpac_installer.nsi
Changed
@@ -1,6 +1,6 @@ ;-------------------------------- ;General -!define GPAC_VERSION 2.2 +!define GPAC_VERSION 2.2.1 !include default.out !define GPAC_ROOT ..\..\..
View file
gpac-2.2.0.tar.gz/src/bifs/unquantize.c -> gpac-2.2.1.tar.gz/src/bifs/unquantize.c
Changed
@@ -2,7 +2,7 @@ * GPAC - Multimedia Framework C SDK * * Authors: Jean Le Feuvre - * Copyright (c) Telecom ParisTech 2000-2012 + * Copyright (c) Telecom ParisTech 2000-2023 * All rights reserved * * This file is part of GPAC / BIFS codec sub-project @@ -284,7 +284,7 @@ s32 value; Fixed tang4, delta; s32 dir; - + if (NbBits>32) return GF_NON_COMPLIANT_BITSTREAM; if (NbComp != 2 && NbComp != 3) return GF_BAD_PARAM; //only 2 or 3 comp in the quantized version
View file
gpac-2.2.0.tar.gz/src/filter_core/filter_pid.c -> gpac-2.2.1.tar.gz/src/filter_core/filter_pid.c
Changed
@@ -62,13 +62,17 @@ gf_list_del(pidinst->pck_reassembly); if (pidinst->props) { assert(pidinst->props->reference_count); - if (safe_int_dec(&pidinst->props->reference_count) == 0) { - //see \ref gf_filter_pid_merge_properties_internal for mutex - gf_mx_p(pidinst->pid->filter->tasks_mx); - gf_list_del_item(pidinst->pid->properties, pidinst->props); - gf_mx_v(pidinst->pid->filter->tasks_mx); - gf_props_del(pidinst->props); + gf_mx_p(pidinst->pid->filter->tasks_mx); + //not in parent pid, may happen when reattaching a pid inst to a different pid + //in this case do NOT delete the props + if (gf_list_find(pidinst->pid->properties, pidinst->props)>=0) { + if (safe_int_dec(&pidinst->props->reference_count) == 0) { + //see \ref gf_filter_pid_merge_properties_internal for mutex + gf_list_del_item(pidinst->pid->properties, pidinst->props); + gf_props_del(pidinst->props); + } } + gf_mx_v(pidinst->pid->filter->tasks_mx); } gf_free(pidinst); } @@ -1025,8 +1029,15 @@ if (!target->detached_pid_inst) { target->detached_pid_inst = gf_list_new(); } - //detach props but don't delete them + //detach props if (filter->swap_pidinst_dst->props) { + GF_FilterPidInst *swap_pidi = filter->swap_pidinst_dst; + if (safe_int_dec(&swap_pidi->props->reference_count)==0) { + gf_mx_p(swap_pidi->pid->filter->tasks_mx); + gf_list_del_item(swap_pidi->pid->properties, pidinst->props); + gf_mx_v(swap_pidi->pid->filter->tasks_mx); + gf_props_del(pidinst->props); + } filter->swap_pidinst_dst->props = NULL; } filter->swap_pidinst_dst->pid = NULL; @@ -1275,7 +1286,7 @@ //first connection of this PID to this filter if (!pidinst) { GF_LOG(GF_LOG_ERROR, GF_LOG_FILTER, ("Trying to detach PID %s not present in filter %s inputs\n", pid->name, filter->name)); - assert(!new_chain_input->swap_pidinst_dst); + //when swaping encoder, we may have swap_pidinst_dst not NULL so only check swap_pidinst_src assert(!new_chain_input->swap_pidinst_src); new_chain_input->swap_needs_init = GF_FALSE; return; @@ -5880,7 +5891,7 @@ } src_props = pidi->props; } - //move to rela pid + //move to real pid src_pid = src_pid->pid; //this is a copy props on output pid if (!src_props) {
View file
gpac-2.2.0.tar.gz/src/filters/load_text.c -> gpac-2.2.1.tar.gz/src/filters/load_text.c
Changed
@@ -305,18 +305,24 @@ if (!unicode_type && (szLinei & 0x80)) { /*non UTF8 (likely some win-CP)*/ if ((szLinei+1 & 0xc0) != 0x80) { + if (j >= GF_ARRAY_LENGTH(szLineConv)) + break; szLineConvj = 0xc0 | ( (szLinei >> 6) & 0x3 ); j++; szLinei &= 0xbf; } /*UTF8 2 bytes char*/ else if ( (szLinei & 0xe0) == 0xc0) { + if (j >= GF_ARRAY_LENGTH(szLineConv)) + break; szLineConvj = szLinei; i++; j++; } /*UTF8 3 bytes char*/ else if ( (szLinei & 0xf0) == 0xe0) { + if (j+1 >= GF_ARRAY_LENGTH(szLineConv)) + break; szLineConvj = szLinei; i++; j++; @@ -326,6 +332,8 @@ } /*UTF8 4 bytes char*/ else if ( (szLinei & 0xf8) == 0xf0) { + if (j+2 >= GF_ARRAY_LENGTH(szLineConv)) + break; szLineConvj = szLinei; i++; j++; @@ -340,8 +348,18 @@ continue; } } + + if (j >= GF_ARRAY_LENGTH(szLineConv)) + break; + szLineConvj = szLinei; j++; + + + } + if ( j >= GF_ARRAY_LENGTH(szLineConv) ) { + GF_LOG(GF_LOG_DEBUG, GF_LOG_PARSER, ("TXTIn Line too long to convert to utf8 (len: %d)\n", len)); + j = GF_ARRAY_LENGTH(szLineConv) -1 ; } szLineConvj = 0; strcpy(szLine, szLineConv);
View file
gpac-2.2.0.tar.gz/src/filters/reframe_adts.c -> gpac-2.2.1.tar.gz/src/filters/reframe_adts.c
Changed
@@ -300,7 +300,7 @@ } } } - + p = gf_filter_pid_get_property(ctx->ipid, GF_PROP_PID_FILE_CACHED); if (p && p->value.boolean) ctx->file_loaded = GF_TRUE; } @@ -824,6 +824,12 @@ } if (!ctx->in_seek) { + + if (sync_pos + offset + size > remain) { + GF_LOG(GF_LOG_WARNING, GF_LOG_MEDIA, ("ADTSDmx truncated frame\n")); + break; + } + dst_pck = gf_filter_pck_new_alloc(ctx->opid, size, &output); if (!dst_pck) return GF_OUT_OF_MEM; if (ctx->src_pck) gf_filter_pck_merge_properties(ctx->src_pck, dst_pck);
View file
gpac-2.2.0.tar.gz/src/filters/reframe_av1.c -> gpac-2.2.1.tar.gz/src/filters/reframe_av1.c
Changed
@@ -57,7 +57,7 @@ Double index; Bool importer; Bool deps, notime, temporal_delim; - + u32 bsdbg; //only one input pid declared @@ -933,7 +933,7 @@ if (!ctx->opid) return GF_NON_COMPLIANT_BITSTREAM; - + gf_bs_get_content_no_truncate(ctx->state.bs, &ctx->state.frame_obus, &pck_size, &ctx->state.frame_obus_alloc); if (!pck_size) { @@ -1037,7 +1037,12 @@ if (ctx->timescale && (e==GF_BUFFER_TOO_SMALL)) e = GF_OK; - if (e) return e; + if (e) { + if (e!=GF_EOS && e!=GF_BUFFER_TOO_SMALL) { + av1dmx_parse_flush_sample(filter, ctx); + } + return e; + } if (!ctx->opid) { @@ -1392,4 +1397,3 @@ return NULL; } #endif // GPAC_DISABLE_AV_PARSERS -
View file
gpac-2.2.0.tar.gz/src/filters/reframe_mhas.c -> gpac-2.2.1.tar.gz/src/filters/reframe_mhas.c
Changed
@@ -198,12 +198,11 @@ if (!mhas_last_cfg) mhas_sap = 0; //config } else if (mhas_type==1) { - u32 sr = 0; /*u32 pl = */gf_bs_read_u8(bs); u32 idx = gf_bs_read_int(bs, 5); if (idx==0x1f) duration.den = gf_bs_read_int(bs, 24); - else if (sr < nb_usac_sr) { + else if (idx < nb_usac_sr) { duration.den = USACSampleRatesidx; } idx = gf_bs_read_int(bs, 3); @@ -621,7 +620,7 @@ u32 idx = gf_bs_read_int(ctx->bs, 5); if (idx==0x1f) sr = gf_bs_read_int(ctx->bs, 24); - else if (sr < nb_usac_sr) { + else if (idx < nb_usac_sr) { sr = USACSampleRatesidx; } ctx->nb_unknown_pck = 0;
View file
gpac-2.2.0.tar.gz/src/filters/reframe_mp3.c -> gpac-2.2.1.tar.gz/src/filters/reframe_mp3.c
Changed
@@ -668,6 +668,10 @@ } if (!ctx->in_seek) { + if (bytes_skipped + size > remain) { + GF_LOG(GF_LOG_WARNING, GF_LOG_MEDIA, ("MP3Dmx truncated frame of size %u (remains %d)\n", size, remain-bytes_skipped)); + break; + } dst_pck = gf_filter_pck_new_alloc(ctx->opid, size, &output); if (!dst_pck) break; memcpy(output, sync, size); @@ -907,4 +911,3 @@ return NULL; } #endif // GPAC_DISABLE_AV_PARSERS -
View file
gpac-2.2.0.tar.gz/src/filters/reframe_rawpcm.c -> gpac-2.2.1.tar.gz/src/filters/reframe_rawpcm.c
Changed
@@ -250,6 +250,7 @@ if (ctx->probe_wave==1) { Bool wav_ok = GF_TRUE; + Bool hdr_found = GF_FALSE; GF_BitStream *bs; if (ctx->probe_data) { ctx->probe_data = gf_realloc(ctx->probe_data, ctx->probe_data_size+pck_size); @@ -280,6 +281,7 @@ continue; } //parse fmt + hdr_found = GF_TRUE; u16 atype = gf_bs_read_u16_le(bs); ctx->ch = gf_bs_read_u16_le(bs); ctx->sr = gf_bs_read_u32_le(bs); @@ -312,11 +314,13 @@ memcpy(ctx->probe_data, data, pck_size); ctx->probe_data_size = pck_size; } - if (ctx->probe_data_size<=10000) { - gf_filter_pid_drop_packet(ctx->ipid); - return GF_OK; + if (!hdr_found) { + if (ctx->probe_data_size<=10000) { + gf_filter_pid_drop_packet(ctx->ipid); + return GF_OK; + } + GF_LOG(GF_LOG_WARNING, GF_LOG_MEDIA, ("PCMReframe Cannot find wave data chunk after %d bytes, aborting\n", ctx->probe_data_size)); } - GF_LOG(GF_LOG_WARNING, GF_LOG_MEDIA, ("PCMReframe Cannot find wave data chink afetr %d bytes, aborting\n", ctx->probe_data_size)); wav_ok = GF_FALSE; }
View file
gpac-2.2.0.tar.gz/src/isomedia/box_code_base.c -> gpac-2.2.1.tar.gz/src/isomedia/box_code_base.c
Changed
@@ -4429,7 +4429,7 @@ /*VVC*/ gf_isom_check_position(s, (GF_Box *)ptr->vvc_config, &pos); - + /*AV1*/ gf_isom_check_position(s, (GF_Box *)ptr->av1_config, &pos); @@ -8857,7 +8857,7 @@ e = gf_isom_box_write_header(s, bs); if (ptr->cfg.is_ec3) s->type = GF_ISOM_BOX_TYPE_DAC3; if (e) return e; - + e = gf_odf_ac3_cfg_write_bs(&ptr->cfg, bs); if (e) return e; @@ -9983,6 +9983,9 @@ } return ptr; } + case 0: + GF_LOG(GF_LOG_WARNING, GF_LOG_CONTAINER, ("iso file sgpd entry null grouping_type is invalid\n") ); + return NULL; default: break; }
View file
gpac-2.2.0.tar.gz/src/isomedia/box_funcs.c -> gpac-2.2.1.tar.gz/src/isomedia/box_funcs.c
Changed
@@ -104,7 +104,7 @@ GF_Box *newBox; Bool skip_logs = (gf_bs_get_cookie(bs) & GF_ISOM_BS_COOKIE_NO_LOGS ) ? GF_TRUE : GF_FALSE; Bool is_special = GF_TRUE; - + if ((bs == NULL) || (outBox == NULL) ) return GF_BAD_PARAM; *outBox = NULL; if (gf_bs_available(bs) < 8) { @@ -1528,7 +1528,7 @@ BOX_DEFINE_S_CHILD( GF_QT_SUBTYPE_YVYU, video_sample_entry, "stsd", "apple"), BOX_DEFINE_S_CHILD( GF_QT_SUBTYPE_RGBA, video_sample_entry, "stsd", "apple"), BOX_DEFINE_S_CHILD( GF_QT_SUBTYPE_ABGR, video_sample_entry, "stsd", "apple"), - + FBOX_DEFINE_S(GF_QT_BOX_TYPE_STPS, stss, "stbl", 0, "apple"), //dolby boxes @@ -1918,7 +1918,7 @@ s32 cur_pos = gf_list_find(s->child_boxes, child); - //happens when partially cloning boxes + //happens when partially cloning boxes if (cur_pos < 0) return; if (cur_pos != (s32) *pos) { @@ -1949,7 +1949,7 @@ if (!a) return GF_BAD_PARAM; //box has been disabled, do not write if (!a->size) return GF_OK; - + if (a->registry->disabled) { GF_LOG(GF_LOG_DEBUG, GF_LOG_CONTAINER, ("iso file Box %s disabled registry, skip write\n", gf_4cc_to_str(a->type))); return GF_OK;
View file
gpac-2.2.0.tar.gz/src/isomedia/isom_read.c -> gpac-2.2.1.tar.gz/src/isomedia/isom_read.c
Changed
@@ -2304,7 +2304,7 @@ } if (static_sample && ! (*sample)->alloc_size ) (*sample)->alloc_size = (*sample)->dataLength; - + return GF_OK; } @@ -4674,7 +4674,7 @@ if (!map) return NULL; tsel = (GF_TrackSelectionBox*)gf_list_get(map->boxes, group_index-1); if (!tsel) return NULL; - + *switchGroupID = tsel->switchGroup; *criteriaListSize = tsel->attributeListCount; return (const u32 *) tsel->attributeList; @@ -5409,7 +5409,7 @@ if (skip_byte_block) *skip_byte_block = 0; if (key_info) *key_info = NULL; if (key_info_size) *key_info_size = 0; - + if (!trak) return GF_BAD_PARAM; #ifdef GPAC_DISABLE_ISOM_FRAGMENTS
View file
gpac-2.2.0.tar.gz/src/laser/lsr_dec.c -> gpac-2.2.1.tar.gz/src/laser/lsr_dec.c
Changed
@@ -2,7 +2,7 @@ * GPAC - Multimedia Framework C SDK * * Authors: Jean Le Feuvre - * Copyright (c) Telecom ParisTech 2005-2022 + * Copyright (c) Telecom ParisTech 2005-2023 * All rights reserved * * This file is part of GPAC / LASeR codec sub-project @@ -1539,8 +1539,8 @@ } else { da->type=SVG_STROKEDASHARRAY_ARRAY; da->array.count = lsr_read_vluimsbf5(lsr, "len"); - da->array.vals = (Fixed*)gf_malloc(sizeof(Fixed)*da->array.count); - da->array.units = (u8*)gf_malloc(sizeof(u8)*da->array.count); + da->array.vals = (Fixed*)gf_realloc(da->array.vals, sizeof(Fixed)*da->array.count); + da->array.units = (u8*)gf_realloc(da->array.units, sizeof(u8)*da->array.count); if (!da->array.vals || !da->array.units) { lsr->last_error = GF_OUT_OF_MEM; return;
View file
gpac-2.2.0.tar.gz/src/media_tools/av_parsers.c -> gpac-2.2.1.tar.gz/src/media_tools/av_parsers.c
Changed
@@ -5677,10 +5677,10 @@ if (si->slice_type > 9) return -1; pps_id = gf_bs_read_ue_log(bs, "pps_id"); - if ((pps_id<0) || (pps_id > 255)) return -1; + if ((pps_id<0) || (pps_id >= 255)) return -1; si->pps = &avc->ppspps_id; if (!si->pps->slice_group_count) return -2; - if (si->pps->sps_id>=255) return -1; + if (si->pps->sps_id>=32) return -1; si->sps = &avc->spssi->pps->sps_id; if (!si->sps->log2_max_frame_num) return -2; avc->sps_active_idx = si->pps->sps_id; @@ -5787,7 +5787,7 @@ if (si->slice_type > 9) return -1; pps_id = gf_bs_read_ue_log(bs, "pps_id"); - if ((pps_id<0) || (pps_id > 255)) + if ((pps_id<0) || (pps_id >= 255)) return -1; si->pps = &avc->ppspps_id; si->pps->id = pps_id; @@ -7199,7 +7199,7 @@ u32 num_long_term_pics = 0; memset(DeltaPocMsbCycleLt, 0, sizeof(u8) * 32); - + if (sps->num_long_term_ref_pic_sps > 0) { num_long_term_sps = gf_bs_read_ue_log(bs, "num_long_term_sps"); } @@ -7339,7 +7339,7 @@ } } - si->header_size_bits = (gf_bs_get_position(bs) - 1) * 8 + gf_bs_get_bit_position(bs); // av_parser.c modified on 16 jan. 2019 + si->header_size_bits = (gf_bs_get_position(bs) - 1) * 8 + gf_bs_get_bit_position(bs); // av_parser.c modified on 16 jan. 2019 if (gf_bs_read_int_log(bs, 1, "byte_align") == 0) { GF_LOG(GF_LOG_WARNING, GF_LOG_CODING, ("Error parsing slice header: byte_align not found at end of header !\n")); @@ -10206,7 +10206,7 @@ s32 sync_pos=-1; if (!ptr || !size) return 0; - + for (i=0; i<size-3; i++) { if ((ptri==0xC0) && (ptri+1== 0x01) && (ptri+2==0xA5)) { sync_pos = i; @@ -10602,7 +10602,7 @@ sps->width -= SubWidthC * (sps->cw_left + sps->cw_right); sps->height -= SubHeightC * (sps->cw_top + sps->cw_bottom); } - + sps->subpic_info_present = gf_bs_read_int_log(bs, 1, "subpic_info_present"); if (sps->subpic_info_present) { sps->nb_subpics = 1 + gf_bs_read_ue_log(bs, "nb_subpics_minus1"); @@ -12038,7 +12038,7 @@ memcpy(&vvc->s_info, &n_state, sizeof(VVCSliceInfo)); return ret; } - + ret = 0; if (n_state.compute_poc_defer || n_state.picture_header_in_slice_header_flag) { is_slice = GF_TRUE;
View file
gpac-2.2.0.tar.gz/src/media_tools/mpegts.c -> gpac-2.2.1.tar.gz/src/media_tools/mpegts.c
Changed
@@ -823,6 +823,11 @@ descs_size = ((datapos+3&0xf)<<8) | datapos+4; pos += 5; + if (pos+descs_size > data_size) { + GF_LOG(GF_LOG_WARNING, GF_LOG_CONTAINER, ("MPEG-2 TS Invalid descriptors size read from data (%u)\n")); + return; + } + d_pos = 0; while (d_pos < descs_size) { u8 d_tag = datapos+d_pos; @@ -941,6 +946,11 @@ return; } + if (data_size < 5) { + GF_LOG(GF_LOG_ERROR, GF_LOG_CONTAINER, ("MPEG-2 TS Section data size too small to read date (len: %u)\n", data_size)); + goto error_exit; + } + /*UTC_time - see annex C of DVB-SI ETSI EN 300468*/ /* decodes an Modified Julian Date (MJD) into a Co-ordinated Universal Time (UTC) See annex C of DVB-SI ETSI EN 300468 */ @@ -2130,7 +2140,7 @@ } else { if (!has_data) goto exit; - + /*3-byte start-code + 1 byte streamid*/ len = 4; memset(&pesh, 0, sizeof(pesh));
View file
gpac-2.2.0.tar.gz/src/odf/descriptors.c -> gpac-2.2.1.tar.gz/src/odf/descriptors.c
Changed
@@ -1395,12 +1395,12 @@ gf_list_add(cfg->param_array, ar); break; default: - GF_LOG(GF_LOG_WARNING, GF_LOG_CODING, ("VVC Invalid NALU type in vvcC - ignoring\n", ar->nalus)); + GF_LOG(GF_LOG_WARNING, GF_LOG_CODING, ("VVC Invalid NALU type %d in vvcC - ignoring\n", ar->type)); gf_free(ar); break; } - if ((ar->type != GF_VVC_NALU_DEC_PARAM) && (ar->type != GF_VVC_NALU_OPI)) + if (!valid || ((ar->type != GF_VVC_NALU_DEC_PARAM) && (ar->type != GF_VVC_NALU_OPI))) nalucount = gf_bs_read_int(bs, 16); else nalucount = 1;
View file
gpac-2.2.0.tar.gz/src/utils/bitstream.c -> gpac-2.2.1.tar.gz/src/utils/bitstream.c
Changed
@@ -1266,6 +1266,10 @@ } } else { bs->position += nbBytes; + if (bs->position>bs->size) { + bs->position = bs->size; + bs->overflow_state = 1; + } } return; }
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.