Skip to content

Commit a6f4154

Browse files
committed
Merge pull request #108224 from Chubercik/libogg-1.3.6
libogg: Update to 1.3.6
2 parents 1575e3d + ac1f055 commit a6f4154

File tree

3 files changed

+63
-37
lines changed

3 files changed

+63
-37
lines changed

thirdparty/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ Patches:
566566
## libogg
567567

568568
- Upstream: https://www.xiph.org/ogg
569-
- Version: 1.3.5 (e1774cd77f471443541596e09078e78fdc342e4f, 2021)
569+
- Version: 1.3.6 (be05b13e98b048f0b5a0f5fa8ce514d56db5f822, 2025)
570570
- License: BSD-3-Clause
571571

572572
Files extracted from upstream source:

thirdparty/libogg/bitwise.c

Lines changed: 29 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ static const unsigned int mask8B[]=
3939
void oggpack_writeinit(oggpack_buffer *b){
4040
memset(b,0,sizeof(*b));
4141
b->ptr=b->buffer=_ogg_malloc(BUFFER_INCREMENT);
42+
if (!b->buffer)
43+
return;
4244
b->buffer[0]='\0';
4345
b->storage=BUFFER_INCREMENT;
4446
}
@@ -284,13 +286,13 @@ long oggpack_look(oggpack_buffer *b,int bits){
284286

285287
ret=b->ptr[0]>>b->endbit;
286288
if(bits>8){
287-
ret|=b->ptr[1]<<(8-b->endbit);
289+
ret|=(unsigned long)b->ptr[1]<<(8-b->endbit);
288290
if(bits>16){
289-
ret|=b->ptr[2]<<(16-b->endbit);
291+
ret|=(unsigned long)b->ptr[2]<<(16-b->endbit);
290292
if(bits>24){
291-
ret|=b->ptr[3]<<(24-b->endbit);
293+
ret|=(unsigned long)b->ptr[3]<<(24-b->endbit);
292294
if(bits>32 && b->endbit)
293-
ret|=b->ptr[4]<<(32-b->endbit);
295+
ret|=(unsigned long)b->ptr[4]<<(32-b->endbit);
294296
}
295297
}
296298
}
@@ -313,13 +315,13 @@ long oggpackB_look(oggpack_buffer *b,int bits){
313315
else if(!bits)return(0L);
314316
}
315317

316-
ret=b->ptr[0]<<(24+b->endbit);
318+
ret=(unsigned long)b->ptr[0]<<(24+b->endbit);
317319
if(bits>8){
318-
ret|=b->ptr[1]<<(16+b->endbit);
320+
ret|=(unsigned long)b->ptr[1]<<(16+b->endbit);
319321
if(bits>16){
320-
ret|=b->ptr[2]<<(8+b->endbit);
322+
ret|=(unsigned long)b->ptr[2]<<(8+b->endbit);
321323
if(bits>24){
322-
ret|=b->ptr[3]<<(b->endbit);
324+
ret|=(unsigned long)b->ptr[3]<<(b->endbit);
323325
if(bits>32 && b->endbit)
324326
ret|=b->ptr[4]>>(8-b->endbit);
325327
}
@@ -389,13 +391,13 @@ long oggpack_read(oggpack_buffer *b,int bits){
389391

390392
ret=b->ptr[0]>>b->endbit;
391393
if(bits>8){
392-
ret|=b->ptr[1]<<(8-b->endbit);
394+
ret|=(unsigned long)b->ptr[1]<<(8-b->endbit);
393395
if(bits>16){
394-
ret|=b->ptr[2]<<(16-b->endbit);
396+
ret|=(unsigned long)b->ptr[2]<<(16-b->endbit);
395397
if(bits>24){
396-
ret|=b->ptr[3]<<(24-b->endbit);
398+
ret|=(unsigned long)b->ptr[3]<<(24-b->endbit);
397399
if(bits>32 && b->endbit){
398-
ret|=b->ptr[4]<<(32-b->endbit);
400+
ret|=(unsigned long)b->ptr[4]<<(32-b->endbit);
399401
}
400402
}
401403
}
@@ -430,13 +432,13 @@ long oggpackB_read(oggpack_buffer *b,int bits){
430432
else if(!bits)return(0L);
431433
}
432434

433-
ret=b->ptr[0]<<(24+b->endbit);
435+
ret=(unsigned long)b->ptr[0]<<(24+b->endbit);
434436
if(bits>8){
435-
ret|=b->ptr[1]<<(16+b->endbit);
437+
ret|=(unsigned long)b->ptr[1]<<(16+b->endbit);
436438
if(bits>16){
437-
ret|=b->ptr[2]<<(8+b->endbit);
439+
ret|=(unsigned long)b->ptr[2]<<(8+b->endbit);
438440
if(bits>24){
439-
ret|=b->ptr[3]<<(b->endbit);
441+
ret|=(unsigned long)b->ptr[3]<<(b->endbit);
440442
if(bits>32 && b->endbit)
441443
ret|=b->ptr[4]>>(8-b->endbit);
442444
}
@@ -565,17 +567,17 @@ void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){
565567
int tbit=bits?bits:ilog(b[i]);
566568
if(oggpack_look(&r,tbit)==-1)
567569
report("out of data!\n");
568-
if(oggpack_look(&r,tbit)!=(b[i]&mask[tbit]))
570+
if((unsigned long)oggpack_look(&r,tbit)!=(b[i]&mask[tbit]))
569571
report("looked at incorrect value!\n");
570572
if(tbit==1)
571-
if(oggpack_look1(&r)!=(b[i]&mask[tbit]))
573+
if((unsigned long)oggpack_look1(&r)!=(b[i]&mask[tbit]))
572574
report("looked at single bit incorrect value!\n");
573575
if(tbit==1){
574-
if(oggpack_read1(&r)!=(b[i]&mask[tbit]))
576+
if((unsigned long)oggpack_read1(&r)!=(b[i]&mask[tbit]))
575577
report("read incorrect single bit value!\n");
576578
}else{
577-
if(oggpack_read(&r,tbit)!=(b[i]&mask[tbit]))
578-
report("read incorrect value!\n");
579+
if((unsigned long)oggpack_read(&r,tbit)!=(b[i]&mask[tbit]))
580+
report("read incorrect value!\n");
579581
}
580582
}
581583
if(oggpack_bytes(&r)!=bytes)report("leftover bytes after read!\n");
@@ -600,16 +602,16 @@ void cliptestB(unsigned long *b,int vals,int bits,int *comp,int compsize){
600602
int tbit=bits?bits:ilog(b[i]);
601603
if(oggpackB_look(&r,tbit)==-1)
602604
report("out of data!\n");
603-
if(oggpackB_look(&r,tbit)!=(b[i]&mask[tbit]))
605+
if((unsigned long)oggpackB_look(&r,tbit)!=(b[i]&mask[tbit]))
604606
report("looked at incorrect value!\n");
605607
if(tbit==1)
606-
if(oggpackB_look1(&r)!=(b[i]&mask[tbit]))
608+
if((unsigned long)oggpackB_look1(&r)!=(b[i]&mask[tbit]))
607609
report("looked at single bit incorrect value!\n");
608610
if(tbit==1){
609-
if(oggpackB_read1(&r)!=(b[i]&mask[tbit]))
611+
if((unsigned long)oggpackB_read1(&r)!=(b[i]&mask[tbit]))
610612
report("read incorrect single bit value!\n");
611613
}else{
612-
if(oggpackB_read(&r,tbit)!=(b[i]&mask[tbit]))
614+
if((unsigned long)oggpackB_read(&r,tbit)!=(b[i]&mask[tbit]))
613615
report("read incorrect value!\n");
614616
}
615617
}
@@ -888,7 +890,7 @@ int main(void){
888890
oggpack_readinit(&r,buffer,bytes);
889891
for(i=0;i<test2size;i++){
890892
if(oggpack_look(&r,32)==-1)report("out of data. failed!");
891-
if(oggpack_look(&r,32)!=large[i]){
893+
if((unsigned long)oggpack_look(&r,32)!=large[i]){
892894
fprintf(stderr,"%ld != %lu (%lx!=%lx):",oggpack_look(&r,32),large[i],
893895
oggpack_look(&r,32),large[i]);
894896
report("read incorrect value!\n");
@@ -998,7 +1000,7 @@ int main(void){
9981000
oggpackB_readinit(&r,buffer,bytes);
9991001
for(i=0;i<test2size;i++){
10001002
if(oggpackB_look(&r,32)==-1)report("out of data. failed!");
1001-
if(oggpackB_look(&r,32)!=large[i]){
1003+
if((unsigned long)oggpackB_look(&r,32)!=large[i]){
10021004
fprintf(stderr,"%ld != %lu (%lx!=%lx):",oggpackB_look(&r,32),large[i],
10031005
oggpackB_look(&r,32),large[i]);
10041006
report("read incorrect value!\n");

thirdparty/libogg/framing.c

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -349,12 +349,13 @@ int ogg_stream_packetin(ogg_stream_state *os,ogg_packet *op){
349349
static int ogg_stream_flush_i(ogg_stream_state *os,ogg_page *og, int force, int nfill){
350350
int i;
351351
int vals=0;
352-
int maxvals=(os->lacing_fill>255?255:os->lacing_fill);
352+
int maxvals;
353353
int bytes=0;
354354
long acc=0;
355355
ogg_int64_t granule_pos=-1;
356356

357357
if(ogg_stream_check(os)) return(0);
358+
maxvals=(os->lacing_fill>255?255:os->lacing_fill);
358359
if(maxvals==0) return(0);
359360

360361
/* construct a page */
@@ -639,12 +640,15 @@ int ogg_sync_wrote(ogg_sync_state *oy, long bytes){
639640
*/
640641

641642
long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){
642-
unsigned char *page=oy->data+oy->returned;
643+
unsigned char *page;
643644
unsigned char *next;
644-
long bytes=oy->fill-oy->returned;
645+
long bytes;
645646

646647
if(ogg_sync_check(oy))return 0;
647648

649+
page=oy->data+oy->returned;
650+
bytes=oy->fill-oy->returned;
651+
648652
if(oy->headerbytes==0){
649653
int headerbytes,i;
650654
if(bytes<27)return(0); /* not enough for a header */
@@ -1086,11 +1090,11 @@ void print_header(ogg_page *og){
10861090
(int)og->header[4],(int)og->header[5]);
10871091

10881092
fprintf(stderr," granulepos: %d serialno: %d pageno: %ld\n",
1089-
(og->header[9]<<24)|(og->header[8]<<16)|
1093+
((unsigned)og->header[9]<<24)|(og->header[8]<<16)|
10901094
(og->header[7]<<8)|og->header[6],
1091-
(og->header[17]<<24)|(og->header[16]<<16)|
1095+
((unsigned)og->header[17]<<24)|(og->header[16]<<16)|
10921096
(og->header[15]<<8)|og->header[14],
1093-
((long)(og->header[21])<<24)|(og->header[20]<<16)|
1097+
((long)((unsigned)og->header[21])<<24)|(og->header[20]<<16)|
10941098
(og->header[19]<<8)|og->header[18]);
10951099

10961100
fprintf(stderr," checksum: %02x:%02x:%02x:%02x\n segments: %d (",
@@ -1103,19 +1107,26 @@ void print_header(ogg_page *og){
11031107
fprintf(stderr,")\n\n");
11041108
}
11051109

1106-
void copy_page(ogg_page *og){
1110+
static int copy_page(ogg_page *og){
11071111
unsigned char *temp=_ogg_malloc(og->header_len);
1112+
if (!temp)
1113+
return -1;
11081114
memcpy(temp,og->header,og->header_len);
11091115
og->header=temp;
11101116

11111117
temp=_ogg_malloc(og->body_len);
1118+
if (!temp)
1119+
return -1;
11121120
memcpy(temp,og->body,og->body_len);
11131121
og->body=temp;
1122+
return 0;
11141123
}
11151124

1116-
void free_page(ogg_page *og){
1125+
static void free_page(ogg_page *og){
11171126
_ogg_free (og->header);
1127+
og->header=NULL;
11181128
_ogg_free (og->body);
1129+
og->body=NULL;
11191130
}
11201131

11211132
void error(void){
@@ -1498,6 +1509,11 @@ void test_pack(const int *pl, const int **headers, int byteskip,
14981509

14991510
int byteskipcount=0;
15001511

1512+
if (!data) {
1513+
fprintf(stderr,"unable to allocate requried data buffer!\n");
1514+
exit(1);
1515+
}
1516+
15011517
ogg_stream_reset(&os_en);
15021518
ogg_stream_reset(&os_de);
15031519
ogg_sync_reset(&oy);
@@ -1809,6 +1825,11 @@ int main(void){
18091825
int inptr=0,i,j;
18101826
ogg_page og[5];
18111827

1828+
if (!data) {
1829+
fprintf(stderr,"unable to allocate requried packet data buffer!\n");
1830+
exit(1);
1831+
}
1832+
18121833
ogg_stream_reset(&os_en);
18131834

18141835
for(i=0;pl[i]!=-1;i++){
@@ -1832,7 +1853,10 @@ int main(void){
18321853
fprintf(stderr,"Too few pages output building sync tests!\n");
18331854
exit(1);
18341855
}
1835-
copy_page(&og[i]);
1856+
if (-1 == copy_page(&og[i])) {
1857+
fprintf(stderr,"unable to copy page building sync tests!\n");
1858+
exit(1);
1859+
}
18361860
}
18371861

18381862
/* Test lost pages on pagein/packetout: no rollback */

0 commit comments

Comments
 (0)