Skip to content

Commit 4a95d2d

Browse files
devinmoore-googAndroid (Google) Code Review
authored andcommitted
Merge "binderRpcTest: Fix sockaddr_storage handling" into main
2 parents 418b3be + 99820a8 commit 4a95d2d

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

libs/binder/tests/binderRpcTest.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -382,7 +382,7 @@ std::unique_ptr<ProcessSession> BinderRpc::createRpcTestSocketServerProcessEtc(
382382
sockaddr_un addr_un{};
383383
addr_un.sun_family = AF_UNIX;
384384
strcpy(addr_un.sun_path, serverConfig.addr.c_str());
385-
addr = *reinterpret_cast<sockaddr_storage*>(&addr_un);
385+
std::memcpy(&addr, &addr_un, sizeof(sockaddr_un));
386386
addrLen = sizeof(sockaddr_un);
387387

388388
status = session->setupPreconnectedClient({}, [=]() {
@@ -394,7 +394,7 @@ std::unique_ptr<ProcessSession> BinderRpc::createRpcTestSocketServerProcessEtc(
394394
sockaddr_un addr_un{};
395395
addr_un.sun_family = AF_UNIX;
396396
strcpy(addr_un.sun_path, serverConfig.addr.c_str());
397-
addr = *reinterpret_cast<sockaddr_storage*>(&addr_un);
397+
std::memcpy(&addr, &addr_un, sizeof(sockaddr_un));
398398
addrLen = sizeof(sockaddr_un);
399399

400400
status = session->setupUnixDomainClient(serverConfig.addr.c_str());
@@ -409,7 +409,7 @@ std::unique_ptr<ProcessSession> BinderRpc::createRpcTestSocketServerProcessEtc(
409409
.svm_port = static_cast<unsigned int>(serverInfo.port),
410410
.svm_cid = VMADDR_CID_LOCAL,
411411
};
412-
addr = *reinterpret_cast<sockaddr_storage*>(&addr_vm);
412+
std::memcpy(&addr, &addr_vm, sizeof(sockaddr_vm));
413413
addrLen = sizeof(sockaddr_vm);
414414

415415
status = session->setupVsockClient(VMADDR_CID_LOCAL, serverInfo.port);
@@ -420,7 +420,7 @@ std::unique_ptr<ProcessSession> BinderRpc::createRpcTestSocketServerProcessEtc(
420420
addr_in.sin_family = AF_INET;
421421
addr_in.sin_port = htons(serverInfo.port);
422422
inet_aton(ip_addr.c_str(), &addr_in.sin_addr);
423-
addr = *reinterpret_cast<sockaddr_storage*>(&addr_in);
423+
std::memcpy(&addr, &addr_in, sizeof(sockaddr_in));
424424
addrLen = sizeof(sockaddr_in);
425425

426426
status = session->setupInetClient(ip_addr.c_str(), serverInfo.port);

0 commit comments

Comments
 (0)