Projects
home:enzokiel
avidemux3
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
Expand all
Collapse all
Changes of Revision 33
View file
avidemux3.changes
Changed
@@ -1,7 +1,7 @@ ------------------------------------------------------------------- -Thu Aug 27 09:48:33 UTC 2026 - enzokiel@kabelmail.de +Wed Sep 02 14:55:09 UTC 2026 - enzokiel@kabelmail.de -- Update to version 2.8.2.git20260826 +- Update to version 2.8.2.git20260901 - No changelog available -------------------------------------------------------------------
View file
avidemux3.spec
Changed
@@ -19,7 +19,7 @@ Name: avidemux3 Summary: Graphical video editing and transcoding tool License: GPL-2.0-only -Version: 2.8.2.git20260826 +Version: 2.8.2.git20260901 Release: 0 URL: https://github.com/mean00/avidemux2 ExclusiveArch: %ix86 x86_64
View file
avidemux2-2.8.2.git20260826.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ADM_ebml.h -> avidemux2-2.8.2.git20260901.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ADM_ebml.h
Changed
@@ -23,7 +23,7 @@ int64_t readSignedInt(uint32_t nb); uint64_t readUnsignedInt(uint32_t nb); float readFloat(uint32_t n); - uint8_t readString(char *string, uint32_t maxLen); + uint32_t readString(char *string, uint32_t maxLen); uint8_t readUTF8(char *string, uint32_t maxLen); uint8_t readElemId(uint64_t *code,uint64_t *len); uint64_t readEBMCode(void); @@ -40,7 +40,7 @@ int32_t reads32(void); /***********************************/ virtual bool readBin(uint8_t *whereto,uint32_t len)=0; - virtual bool skip(uint32_t nbBytes)=0; + virtual bool skip(uint64_t nbBytes)=0; virtual uint64_t tell(void)=0; }; /** @@ -59,7 +59,7 @@ bool open(const char *fn); virtual bool readBin(uint8_t *whereto,uint32_t len); - virtual bool skip(uint32_t nbBytes); + virtual bool skip(uint64_t nbBytes); uint64_t tell(void); bool seek(uint64_t pos); bool finished(void);
View file
avidemux2-2.8.2.git20260826.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ADM_mkvEntries.cpp -> avidemux2-2.8.2.git20260901.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ADM_mkvEntries.cpp
Changed
@@ -97,7 +97,8 @@ */ static bool hasNeedle(const char *haystack, const char *needle) { - if(NULL!=strstr( (char *)(haystack+12),needle)) return true; + if (strstr((char *)haystack, needle)) + return true; return false; } /** @@ -713,10 +714,16 @@ { if(ietfLanguageTagFound) break; #define LANG_DESC_BUF_LEN 100 - char sLANG_DESC_BUF_LEN; - sLANG_DESC_BUF_LEN - 1 = 0; - uint64_t sublen = (len < LANG_DESC_BUF_LEN) ? len : LANG_DESC_BUF_LEN - 1; - father.readString(s, sublen); + char sLANG_DESC_BUF_LEN = {0}; + uint32_t sublen = (len < LANG_DESC_BUF_LEN - 1) ? len : LANG_DESC_BUF_LEN - 1; + sublen = father.readString(s, sublen); + if (len >= LANG_DESC_BUF_LEN) + ADM_warning("Language descriptor too long: %" PRIu64", damaged file?\n", len); + if (len > sublen) + { + father.skip(len - sublen); // consume + ADM_info("Skipping %" PRIu64" bytes after language descriptor.\n", len - sublen); + } if(!strlen(s)) strcpy(s,"eng"); // english is default if(!strcmp(s,"unknown")) // we were using "unknown", which is not a valid ISO 639 code @@ -748,16 +755,21 @@ break; case MKV_CODEC_ID: { - uint8_t *codec=new uint8_tlen+1; - father.readBin(codec,len); - codeclen=0; - entry->codecId = (char *)codec; - entry->fcc=ADM_mkvCodecToFourcc((char *)codec); - - delete codec; - +#define CODEC_ID_BUF_LEN 1024 + char codecCODEC_ID_BUF_LEN = {0}; + uint32_t sublen = (len < CODEC_ID_BUF_LEN - 1) ? len : CODEC_ID_BUF_LEN - 1; + sublen = father.readString(codec, sublen); + if (len >= CODEC_ID_BUF_LEN) + ADM_warning("Codec ID too long: %" PRIu64" bytes, damaged file?\n", len); + if (len > sublen) + { + father.skip(len - sublen); // consume + ADM_warning("Skipped %" PRIu64" bytes after codec ID.\n", len - sublen); + } + entry->codecId = codec; + entry->fcc = ADM_mkvCodecToFourcc(codec); } - break; + break; default: printf("MKVnot handled %s\n",ss); father.skip(len); }
View file
avidemux2-2.8.2.git20260826.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ebml.cpp -> avidemux2-2.8.2.git20260901.tar.xz/avidemux_plugins/ADM_demuxers/Matroska/ebml.cpp
Changed
@@ -177,16 +177,23 @@ return val; } -uint8_t ADM_ebml::readString(char *string, uint32_t maxLen) +/** + \fn readString + \brief Read no more than maxLen bytes from the file and write + at most maxLen+1 bytes into buffer pointed to by string. +*/ +uint32_t ADM_ebml::readString(char *string, uint32_t maxLen) { uint8_t v; + uint32_t bytes = 0; while(maxLen--) { v=*string++=readu8(); - if(!v) return 1; + bytes++; + if(!v) return bytes; } *string=0; - return 1; + return bytes; } /****************** Low level read @@ -306,6 +313,8 @@ _begin=0; _fileSize=_size=ftello(fp); fseeko(fp,0,SEEK_SET); + // Safeguard against wraparound in finished() + if(_fileSize < 2) return 0; return 1; } /** @@ -325,14 +334,17 @@ * @param vv * @return */ -bool ADM_ebml_file::skip(uint32_t vv) +bool ADM_ebml_file::skip(uint64_t vv) { + ADM_assert(vv <= INT64_MAX); fseeko(fp,vv,SEEK_CUR); return 1; } uint64_t ADM_ebml_file::tell(void) { - return ftello(fp); + int64_t off = ftello(fp); + ADM_assert(off >= 0); + return off; } /** * @@ -341,6 +353,7 @@ */ bool ADM_ebml_file::seek(uint64_t pos) { + ADM_assert(pos <= INT64_MAX); fseeko(fp,pos,SEEK_SET); return 1; }
View file
avidemux2-2.8.2.git20260826.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsBruteForce.cpp -> avidemux2-2.8.2.git20260901.tar.xz/avidemux_plugins/ADM_demuxers/MpegTS/ADM_tsBruteForce.cpp
Changed
@@ -331,6 +331,8 @@ return false; } int left=pes.payloadSize-pes.offset; + if (limit + left > MP2_PROBE_SIZE * 2) + break; memcpy(mp2Buffer+limit,pes.payload+pes.offset,left); limit+=left; }
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
.