Skip to content

Commit cdfdc85

Browse files
[libc] Small recvfrom fixes (yaml, unpoison) (llvm#111020)
Forgot to update the newhdrgen yaml (old headergen is fine) and forgot to unpoison addrlen. This patch fixes those.
1 parent c20b90a commit cdfdc85

File tree

7 files changed

+16
-13
lines changed

7 files changed

+16
-13
lines changed

libc/newhdrgen/yaml/sys/socket.yaml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ functions:
4949
return_type: ssize_t
5050
arguments:
5151
- type: int
52-
- type: const void *
52+
- type: void *
5353
- type: size_t
5454
- type: int
5555
- name: recvfrom
@@ -58,18 +58,18 @@ functions:
5858
return_type: ssize_t
5959
arguments:
6060
- type: int
61-
- type: const void*
61+
- type: void *
6262
- type: size_t
6363
- type: int
64-
- type: const struct sockaddr *
65-
- type: socklen_t
64+
- type: struct sockaddr *__restrict
65+
- type: socklen_t *__restrict
6666
- name: recvmsg
6767
standards:
6868
- POSIX
6969
return_type: ssize_t
7070
arguments:
7171
- type: int
72-
- type: const struct msghdr *
72+
- type: struct msghdr *
7373
- type: int
7474
- name: send
7575
standards:

libc/src/sys/socket/linux/recv.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
namespace LIBC_NAMESPACE_DECL {
2323

2424
LLVM_LIBC_FUNCTION(ssize_t, recv,
25-
(int sockfd, const void *buf, size_t len, int flags)) {
25+
(int sockfd, void *buf, size_t len, int flags)) {
2626
#ifdef SYS_recv
2727
ssize_t ret =
2828
LIBC_NAMESPACE::syscall_impl<ssize_t>(SYS_recv, sockfd, buf, len, flags);

libc/src/sys/socket/linux/recvfrom.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,9 @@
2222
namespace LIBC_NAMESPACE_DECL {
2323

2424
LLVM_LIBC_FUNCTION(ssize_t, recvfrom,
25-
(int sockfd, const void *buf, size_t len, int flags,
26-
const struct sockaddr *dest_addr, socklen_t *addrlen)) {
25+
(int sockfd, void *buf, size_t len, int flags,
26+
struct sockaddr *__restrict dest_addr,
27+
socklen_t *__restrict addrlen)) {
2728
#ifdef SYS_recvfrom
2829
ssize_t ret = LIBC_NAMESPACE::syscall_impl<ssize_t>(
2930
SYS_recvfrom, sockfd, buf, len, flags, dest_addr, addrlen);
@@ -45,6 +46,7 @@ LLVM_LIBC_FUNCTION(ssize_t, recvfrom,
4546
}
4647

4748
MSAN_UNPOISON(buf, ret);
49+
MSAN_UNPOISON(addrlen, sizeof(socklen_t));
4850

4951
return ret;
5052
}

libc/src/sys/socket/linux/recvmsg.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
namespace LIBC_NAMESPACE_DECL {
2222

2323
LLVM_LIBC_FUNCTION(ssize_t, recvmsg,
24-
(int sockfd, const struct msghdr *msg, int flags)) {
24+
(int sockfd, struct msghdr *msg, int flags)) {
2525
#ifdef SYS_recvmsg
2626
ssize_t ret =
2727
LIBC_NAMESPACE::syscall_impl<ssize_t>(SYS_recvmsg, sockfd, msg, flags);

libc/src/sys/socket/recv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
namespace LIBC_NAMESPACE_DECL {
1616

17-
ssize_t recv(int sockfd, const void *buf, size_t len, int flags);
17+
ssize_t recv(int sockfd, void *buf, size_t len, int flags);
1818

1919
} // namespace LIBC_NAMESPACE_DECL
2020

libc/src/sys/socket/recvfrom.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@
1717

1818
namespace LIBC_NAMESPACE_DECL {
1919

20-
ssize_t recvfrom(int sockfd, const void *buf, size_t len, int flags,
21-
const struct sockaddr *address, socklen_t *addrlen);
20+
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags,
21+
struct sockaddr *__restrict address,
22+
socklen_t *__restrict addrlen);
2223

2324
} // namespace LIBC_NAMESPACE_DECL
2425

libc/src/sys/socket/recvmsg.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
namespace LIBC_NAMESPACE_DECL {
1717

18-
ssize_t recvmsg(int sockfd, const struct msghdr *msg, int flags);
18+
ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);
1919

2020
} // namespace LIBC_NAMESPACE_DECL
2121

0 commit comments

Comments
 (0)