소스 검색

sm8450-common: udfps: Don't try to read with a negative length

Change-Id: If404b671eff00ac8281af2038a113519cd10cc9d
Arian 1 년 전
부모
커밋
573195b6d2
1개의 변경된 파일6개의 추가작업 그리고 0개의 파일을 삭제
  1. 6 0
      udfps/UdfpsHandler.cpp

+ 6 - 0
udfps/UdfpsHandler.cpp

@@ -77,7 +77,13 @@ static disp_event_resp* parseDispEvent(int fd) {
     struct disp_event_resp* response =
             reinterpret_cast<struct disp_event_resp*>(malloc(header.length));
     response->base = header;
+
     int dataLength = response->base.length - sizeof(response->base);
+    if (dataLength < 0) {
+        LOG(ERROR) << "invalid data length: " << response->base.length;
+        return nullptr;
+    }
+
     ssize_t dataSize = read(fd, &response->data, dataLength);
     if (dataSize < dataLength) {
         LOG(ERROR) << "unexpected display event data size: " << dataSize;