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

Commit dc848566 authored by Biao Lu's avatar Biao Lu
Browse files

init: Fix load_firmware error



In function 'load_firmware', parameter 'buf' passed to 'write'
is wrong. To fix it, use android::base::WriteFully to replace.

Change-Id: I13f79bdc9be9e5eb669f6bd975535b1dce965ef0
Signed-off-by: default avatarBiao Lu <biao.lu@intel.com>
parent 53529eca
Loading
Loading
Loading
Loading
+5 −12
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@
#include <sys/time.h>
#include <sys/wait.h>

#include <android-base/file.h>
#include <cutils/list.h>
#include <cutils/uevent.h>

@@ -769,21 +770,13 @@ static int load_firmware(int fw_fd, int loading_fd, int data_fd)
            ret = -1;
            break;
        }

        len_to_copy -= nr;
        while (nr > 0) {
            ssize_t nw = 0;

            nw = write(data_fd, buf + nw, nr);
            if(nw <= 0) {
        if (!android::base::WriteFully(data_fd, buf, nr)) {
            ret = -1;
                goto out;
            }
            nr -= nw;
            break;
        }
        len_to_copy -= nr;
    }

out:
    if(!ret)
        write(loading_fd, "0", 1);  /* successful end of transfer */
    else