Skip to content

Commit

Permalink
repacketizer_demo: check for read errors to fix compiler warnings
Browse files Browse the repository at this point in the history
Actually check for read errors instead of just storing the
return value in a variable that then never gets checked.

Also fixes "conversion from 'size_t' to 'int', possible loss
of data" compiler warnings on Windows with MSVC caused by
storing the size_t returned by fread() into an int variable.

Signed-off-by: Mark Harris <mark.hsj@gmail.com>
  • Loading branch information
nirbheek authored and mark4o committed Aug 22, 2020
1 parent 907a523 commit f7e67d4
Showing 1 changed file with 37 additions and 7 deletions.
44 changes: 37 additions & 7 deletions src/repacketizer_demo.c
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,19 @@ int main(int argc, char *argv[])
for (i=0;i<nb_packets;i++)
{
unsigned char ch[4];
err = fread(ch, 1, 4, fin);
if (fread(ch, 1, 4, fin)!=4)
{
if (feof(fin))
{
eof = 1;
} else {
fprintf(stderr, "Error reading payload length.\n");
fclose(fin);
fclose(fout);
return EXIT_FAILURE;
}
break;
}
len[i] = char_to_int(ch);
/*fprintf(stderr, "in len = %d\n", len[i]);*/
if (len[i]>1500 || len[i]<0)
Expand All @@ -135,13 +147,31 @@ int main(int argc, char *argv[])
}
break;
}
err = fread(ch, 1, 4, fin);
rng[i] = char_to_int(ch);
err = fread(packets[i], 1, len[i], fin);
if (feof(fin))
if (fread(ch, 1, 4, fin)!=4)
{
eof = 1;
break;
if (feof(fin))
{
eof = 1;
} else {
fprintf(stderr, "Error reading.\n");
fclose(fin);
fclose(fout);
return EXIT_FAILURE;
}
break;
}
rng[i] = char_to_int(ch);
if (fread(packets[i], len[i], 1, fin)!=1) {
if (feof(fin))
{
eof = 1;
} else {
fprintf(stderr, "Error reading packet of %u bytes.\n", len[i]);
fclose(fin);
fclose(fout);
return EXIT_FAILURE;
}
break;
}
err = opus_repacketizer_cat(rp, packets[i], len[i]);
if (err!=OPUS_OK)
Expand Down

0 comments on commit f7e67d4

Please sign in to comment.