mirror of
https://review.coreboot.org/flashrom.git
synced 2025-04-27 15:12:36 +02:00
Fix strict aliasing in serprog
Initialize the sockaddr,sockaddr_in union directly instead of running memset later. Corresponding to flashrom svn r715. Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net> Acked-by: Stefan Reinauer <stepan@coresystems.de>
This commit is contained in:
parent
95e892b9d3
commit
6d1256082c
11
serprog.c
11
serprog.c
@ -105,7 +105,7 @@ static int sp_opensocket(char *ip, unsigned int port)
|
||||
{
|
||||
int flag = 1;
|
||||
struct hostent *hostPtr = NULL;
|
||||
struct sockaddr_in sp;
|
||||
union { struct sockaddr_in si; struct sockaddr s; } sp = {};
|
||||
int sock;
|
||||
printf_debug(MSGHEADER "IP %s port %d\n", ip, port);
|
||||
sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
|
||||
@ -117,11 +117,10 @@ static int sp_opensocket(char *ip, unsigned int port)
|
||||
if (NULL == hostPtr)
|
||||
sp_die("Error: cannot resolve");
|
||||
}
|
||||
memset(&sp, 0, sizeof(sp));
|
||||
sp.sin_family = AF_INET;
|
||||
sp.sin_port = htons(port);
|
||||
(void)memcpy(&sp.sin_addr, hostPtr->h_addr, hostPtr->h_length);
|
||||
if (connect(sock, (struct sockaddr *)&sp, sizeof(sp)) < 0) {
|
||||
sp.si.sin_family = AF_INET;
|
||||
sp.si.sin_port = htons(port);
|
||||
(void)memcpy(&sp.si.sin_addr, hostPtr->h_addr, hostPtr->h_length);
|
||||
if (connect(sock, &sp.s, sizeof(sp.si)) < 0) {
|
||||
close(sock);
|
||||
sp_die("Error: serprog cannot connect");
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user