summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2020-07-20 16:19:07 +0530
committerMark Harris <mark.hsj@gmail.com>2020-08-21 23:41:07 -0700
commitf7e67d429feb67c42b98c6d25f271524231b3cc3 (patch)
treec589b71e20aedac87f7ee532530652368d547fe5
parent907a52315dd55811701fc6e778799e6d62f2c508 (diff)
downloadopus-f7e67d429feb67c42b98c6d25f271524231b3cc3.tar.gz
repacketizer_demo: check for read errors to fix compiler warnings
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>
-rw-r--r--src/repacketizer_demo.c44
1 files changed, 37 insertions, 7 deletions
diff --git a/src/repacketizer_demo.c b/src/repacketizer_demo.c
index dc05c1b3..43de7019 100644
--- a/src/repacketizer_demo.c
+++ b/src/repacketizer_demo.c
@@ -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)
@@ -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)