summaryrefslogtreecommitdiff
path: root/lib/rbcodec
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rbcodec')
-rw-r--r--lib/rbcodec/metadata/asf.c20
-rw-r--r--lib/rbcodec/metadata/metadata_common.c2
2 files changed, 12 insertions, 10 deletions
diff --git a/lib/rbcodec/metadata/asf.c b/lib/rbcodec/metadata/asf.c
index 06f7470a69..82c418cc73 100644
--- a/lib/rbcodec/metadata/asf.c
+++ b/lib/rbcodec/metadata/asf.c
@@ -129,19 +129,21 @@ static int asf_intdecode(int fd, int type, int length)
129{ 129{
130 int bytes = 0; 130 int bytes = 0;
131 int ret; 131 int ret;
132 uint16_t tmp16 = 0; 132 union {
133 uint32_t tmp32 = 0; 133 uint16_t tmp16;
134 uint64_t tmp64 = 0; 134 uint32_t tmp32;
135 uint64_t tmp64;
136 } uu = {0};
135 137
136 if (type == 3) { 138 if (type == 3) {
137 bytes = read_uint32le(fd, &tmp32); 139 bytes = read_uint32le(fd, &uu.tmp32);
138 ret = (int)tmp32; 140 ret = (int)uu.tmp32;
139 } else if (type == 4) { 141 } else if (type == 4) {
140 bytes = read_uint64le(fd, &tmp64); 142 bytes = read_uint64le(fd, &uu.tmp64);
141 ret = (int)tmp64; 143 ret = (int)uu.tmp64;
142 } else if (type == 5) { 144 } else if (type == 5) {
143 bytes = read_uint16le(fd, &tmp16); 145 bytes = read_uint16le(fd, &uu.tmp16);
144 ret = (int)tmp16; 146 ret = (int)uu.tmp16;
145 } 147 }
146 148
147 if (bytes > 0) 149 if (bytes > 0)
diff --git a/lib/rbcodec/metadata/metadata_common.c b/lib/rbcodec/metadata/metadata_common.c
index e6f8aaf9a9..8eec16a877 100644
--- a/lib/rbcodec/metadata/metadata_common.c
+++ b/lib/rbcodec/metadata/metadata_common.c
@@ -98,7 +98,7 @@ int read_uint32be(int fd, uint32_t* buf)
98int read_uint64be(int fd, uint64_t* buf) 98int read_uint64be(int fd, uint64_t* buf)
99{ 99{
100 size_t n; 100 size_t n;
101 uint8_t data[8] = {0}; 101 uint8_t data[8];
102 int i; 102 int i;
103 103
104 n = read(fd, data, 8); 104 n = read(fd, data, 8);