• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

system/corennnnn


コミットメタ情報

リビジョンb34cff344cfe26fbd6f6f0cf1b335b92b39b4228 (tree)
日時2016-07-29 19:25:47
作者Biao Lu <biao.lu@inte...>
コミッターChih-Wei Huang

ログメッセージ

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: Biao Lu <biao.lu@intel.com>

変更サマリ

差分

--- a/init/devices.cpp
+++ b/init/devices.cpp
@@ -40,6 +40,7 @@
4040 #include <sys/time.h>
4141 #include <sys/wait.h>
4242
43+#include <base/file.h>
4344 #include <cutils/list.h>
4445 #include <cutils/probe_module.h>
4546 #include <cutils/uevent.h>
@@ -952,21 +953,13 @@ static int load_firmware(int fw_fd, int loading_fd, int data_fd)
952953 ret = -1;
953954 break;
954955 }
955-
956- len_to_copy -= nr;
957- while (nr > 0) {
958- ssize_t nw = 0;
959-
960- nw = write(data_fd, buf + nw, nr);
961- if(nw <= 0) {
962- ret = -1;
963- goto out;
964- }
965- nr -= nw;
956+ if (!android::base::WriteFully(data_fd, buf, nr)) {
957+ ret = -1;
958+ break;
966959 }
960+ len_to_copy -= nr;
967961 }
968962
969-out:
970963 if(!ret)
971964 write(loading_fd, "0", 1); /* successful end of transfer */
972965 else