diff --git a/window_scene/session/host/src/move_drag_controller.cpp b/window_scene/session/host/src/move_drag_controller.cpp index c49e516defb9c041c5accec6eac028594e1a7102..758f8502d9cb6a37ed0486fb1ca49628e857a3b8 100644 --- a/window_scene/session/host/src/move_drag_controller.cpp +++ b/window_scene/session/host/src/move_drag_controller.cpp @@ -1022,7 +1022,7 @@ bool MoveDragController::EventDownInit(const std::shared_ptr& moveDragProperty_.originalRect_); dragAreaType_ = SessionHelper::GetAreaTypeForScaleResize(pointerItem.GetWindowX(), pointerItem.GetWindowY(), outside, moveDragProperty_.originalRect_); - TLOGI(WmsLogTag::WMS_LAYOUT, "pointWinX:%{public}d, pointWinY:%{public}d, outside:%{public}d, vpr:%{public}f, " + TLOGI(WmsLogTag::WMS_LAYOUT, "pointWinX:%{private}d, pointWinY:%{private}d, outside:%{public}d, vpr:%{public}f, " "rect:%{public}s, type:%{public}d", pointerItem.GetWindowX(), pointerItem.GetWindowY(), outside, vpr_, moveDragProperty_.originalRect_.ToString().c_str(), type_); if (type_ == AreaType::UNDEFINED) { diff --git a/wmserver/src/zidl/window_manager_stub.cpp b/wmserver/src/zidl/window_manager_stub.cpp index 7219ddd877e7f6ef4f5d4d0e7b39f5df80b1a44d..001ba1758d12a689e14cbcf6fa2d7d76c2ed1d0d 100644 --- a/wmserver/src/zidl/window_manager_stub.cpp +++ b/wmserver/src/zidl/window_manager_stub.cpp @@ -216,7 +216,7 @@ int32_t WindowManagerStub::OnRemoteRequest(uint32_t code, MessageParcel& data, M } case WindowManagerMessage::TRANS_ID_UPDATE_LAYOUT_MODE: { uint32_t layoutMode = 0; - if (!data.ReadUint32(layoutMode)) { + if (!data.ReadUint32(layoutMode) || layoutMode >= static_cast(WindowLayoutMode::END)) { TLOGE(WmsLogTag::WMS_LAYOUT, "read layoutMode failed"); return ERR_INVALID_DATA; } diff --git a/wmserver/test/unittest/window_manager_stub_test.cpp b/wmserver/test/unittest/window_manager_stub_test.cpp index 13846a97fdcd1460238a56a72c52803fa422af61..8de6b0caadb7f130b915c1486e43fe9a5f85ab64 100644 --- a/wmserver/test/unittest/window_manager_stub_test.cpp +++ b/wmserver/test/unittest/window_manager_stub_test.cpp @@ -15,6 +15,8 @@ #include #include "window_manager_stub_impl.h" +#include "window_manager_service.h" +#include "zidl/window_manager_stub.h" using namespace testing; using namespace testing::ext; @@ -292,6 +294,7 @@ HWTEST_F(WindowManagerStubTest, OnRemoteRequest11, TestSize.Level1) */ HWTEST_F(WindowManagerStubTest, OnRemoteRequest12, TestSize.Level1) { + // Case 1: valid window layout mode can successfully request MessageParcel data; MessageParcel reply; MessageOption option; @@ -301,8 +304,21 @@ HWTEST_F(WindowManagerStubTest, OnRemoteRequest12, TestSize.Level1) uint32_t code = static_cast(IWindowManager::WindowManagerMessage::TRANS_ID_UPDATE_LAYOUT_MODE); - int res = stub_->OnRemoteRequest(code, data, reply, option); - EXPECT_EQ(res, static_cast(ERR_NONE)); + int32_t res = stub_->OnRemoteRequest(code, data, reply, option); + EXPECT_EQ(res, ERR_NONE); + + // Case 2: invalid window layout mode should return ERR_INVALID_DATA + MessageParcel data2; + MessageParcel reply2; + MessageOption option2; + + data2.WriteInterfaceToken(WindowManagerStub::GetDescriptor()); + data2.WriteUint32(static_cast(WindowLayoutMode::END)); + + sptr stub = new WindowManagerService(); + + int32_t res2 = stub->OnRemoteRequest(code, data2, reply2, option2); + EXPECT_EQ(res2, ERR_INVALID_DATA); } /**