diff options
author | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-02-21 10:34:00 -0700 |
---|---|---|
committer | Luke T. Shumaker <lukeshu@lukeshu.com> | 2025-02-21 10:34:00 -0700 |
commit | 19a41387633e53d64d8a0ae69f3d3d3e35641c8d (patch) | |
tree | a89dead6dd34f95b3e644edeb02fe1ca70a28784 /libhw | |
parent | 4ba0b95dc825a83748b7cb2aa528411026d5bada (diff) | |
parent | 5dab625d981e0039a5d874f5d8a6f795472785bc (diff) |
Merge branch 'lukeshu/misc'
Diffstat (limited to 'libhw')
-rw-r--r-- | libhw/host_net.c | 6 | ||||
-rw-r--r-- | libhw/w5500.c | 10 |
2 files changed, 12 insertions, 4 deletions
diff --git a/libhw/host_net.c b/libhw/host_net.c index 505c7dc..eee293e 100644 --- a/libhw/host_net.c +++ b/libhw/host_net.c @@ -229,6 +229,9 @@ static void *hostnet_pthread_read(void *_args) { static ssize_t hostnet_tcp_read(struct _hostnet_tcp_conn *conn, void *buf, size_t count) { assert(conn); + assert(count == 0 || buf); + if (count == 0) + return 0; ssize_t ret; struct hostnet_pthread_read_args args = { @@ -287,6 +290,9 @@ static void *hostnet_pthread_write(void *_args) { static ssize_t hostnet_tcp_write(struct _hostnet_tcp_conn *conn, void *buf, size_t count) { assert(conn); + assert(count == 0 || buf); + if (count == 0) + return 0; ssize_t ret; struct hostnet_pthread_write_args args = { diff --git a/libhw/w5500.c b/libhw/w5500.c index dfe169f..a8777db 100644 --- a/libhw/w5500.c +++ b/libhw/w5500.c @@ -589,8 +589,9 @@ static int w5500_tcplist_close(struct _w5500_socket *socket) { static ssize_t w5500_tcp_write(struct _w5500_socket *socket, void *buf, size_t count) { debugf("tcp_conn.write(%zu)", count); ASSERT_SELF(stream_conn, TCP); - assert(buf); - assert(count); + assert(count == 0 || buf); + if (count == 0) + return 0; /* What we really want is to pause until we receive an ACK for * some data we just queued, so that we can line up some new @@ -677,8 +678,9 @@ static void w5500_tcp_alarm_handler(void *_arg) { static ssize_t w5500_tcp_read(struct _w5500_socket *socket, void *buf, size_t count) { debugf("tcp_conn.read()"); ASSERT_SELF(stream_conn, TCP); - assert(buf); - assert(count); + assert(count == 0 || buf); + if (count == 0) + return 0; struct alarmclock_trigger trigger = {0}; if (socket->read_deadline_ns) |