Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5d9f891 authored by Michael Runge's avatar Michael Runge
Browse files

Allow 0-byte files in full OTAs.

Currently, the writeProcessFunction fails when
there are zero bytes to write, potentially returning
errno from a previous operation, or hanging
indefinitely while it waits for a >0 result on a
write of size 0.  This happens when the output
file is intended to be zero bytes in size.

Change-Id: Ib3cfcaf66d82942bc89e5f5c64697862403b38da
parent 64e7fcd9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -698,7 +698,9 @@ static bool writeProcessFunction(const unsigned char *data, int dataLen,
                                 void *cookie)
{
    int fd = (int)(intptr_t)cookie;

    if (dataLen == 0) {
        return true;
    }
    ssize_t soFar = 0;
    while (true) {
        ssize_t n = write(fd, data+soFar, dataLen-soFar);