Просмотр исходного кода

vi: Don't let uninitialized data pass as a response for SetBufferCount

Currently SetBufferCount doesn't write to the out buffer which then contains uninitialized data. This leads to non-zero data which leads to responding with different error codes
David Marcec 6 лет назад
Родитель
Сommit
03a6f3b0f4
1 измененных файлов с 9 добавлено и 1 удалено
  1. 9 1
      src/core/hle/service/vi/vi.cpp

+ 9 - 1
src/core/hle/service/vi/vi.cpp

@@ -267,7 +267,7 @@ protected:
 
 private:
     struct Data {
-        u32_le unk_0;
+        u32_le unk_0{};
     };
 
     Data data{};
@@ -614,6 +614,14 @@ private:
             ctx.WriteBuffer(response.Serialize());
             break;
         }
+        case TransactionId::SetBufferCount: {
+            LOG_WARNING(Service_VI, "(STUBBED) called, transaction=SetBufferCount");
+            [[maybe_unused]] const auto buffer = ctx.ReadBuffer();
+
+            IGBPEmptyResponseParcel response{};
+            ctx.WriteBuffer(response.Serialize());
+            break;
+        }
         default:
             ASSERT_MSG(false, "Unimplemented");
         }