diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/common/structec.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/firmware/common/structec.c b/firmware/common/structec.c index 3f220b0762..fb13eaab51 100644 --- a/firmware/common/structec.c +++ b/firmware/common/structec.c | |||
@@ -164,8 +164,8 @@ ssize_t ecwrite(int fd, const void *buf, size_t scount, | |||
164 | const char *ecinst, bool ec) | 164 | const char *ecinst, bool ec) |
165 | { | 165 | { |
166 | char tmp[MAX_STRUCT_SIZE]; | 166 | char tmp[MAX_STRUCT_SIZE]; |
167 | size_t member_size = structec_size(ecinst); | 167 | ssize_t member_size = structec_size(ecinst); |
168 | 168 | ||
169 | if (ec) | 169 | if (ec) |
170 | { | 170 | { |
171 | const char *p = (const char *)buf; | 171 | const char *p = (const char *)buf; |
@@ -178,7 +178,11 @@ ssize_t ecwrite(int fd, const void *buf, size_t scount, | |||
178 | 178 | ||
179 | memcpy(tmp, p, member_size * amount); | 179 | memcpy(tmp, p, member_size * amount); |
180 | structec_convert(tmp, ecinst, amount, true); | 180 | structec_convert(tmp, ecinst, amount, true); |
181 | write(fd, tmp, amount * member_size); | 181 | ssize_t ret = write(fd, tmp, amount * member_size); |
182 | |||
183 | if(ret != amount * member_size) | ||
184 | return ret; | ||
185 | |||
182 | p += member_size * amount; | 186 | p += member_size * amount; |
183 | } | 187 | } |
184 | 188 | ||