← Commit list

e891b4195f

Daniel Stenberg
Daniel Stenberg
2025-10-01
FAILED Duration: 260s

Subject

cf-socket: tweak a memcpy() to read better

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

lib/cf-socket.c+3 -4
@@ -333,12 +333,11 @@ static CURLcode sock_assign_addr(struct Curl_sockaddr_ex *dest,
}
dest->addrlen = (unsigned int)ai->ai_addrlen;
- if(dest->addrlen > sizeof(struct Curl_sockaddr_storage)) {
- DEBUGASSERT(0);
+ DEBUGASSERT(dest->addrlen <= sizeof(dest->curl_sa_addrbuf));
+ if(dest->addrlen > sizeof(dest->curl_sa_addrbuf))
return CURLE_TOO_LARGE;
- }
- memcpy(&dest->curl_sa_addr, ai->ai_addr, dest->addrlen);
+ memcpy(&dest->curl_sa_addrbuf, ai->ai_addr, dest->addrlen);
return CURLE_OK;
}
lib/cf-socket.h+5 -4
@@ -48,11 +48,12 @@ struct Curl_sockaddr_ex {
int protocol;
unsigned int addrlen;
union {
- struct sockaddr addr;
- struct Curl_sockaddr_storage buff;
- } _sa_ex_u;
+ struct sockaddr sa;
+ struct Curl_sockaddr_storage buf;
+ } addr;
};
-#define curl_sa_addr _sa_ex_u.addr
+#define curl_sa_addr addr.sa
+#define curl_sa_addrbuf addr.buf
/*
* Parse interface option, and return the interface name and the host part.