diff --git a/sys/posix/sockets/posix_sockets.c b/sys/posix/sockets/posix_sockets.c
index c4df6db5309aa25fed8e5416f504d409a6734f02..dfa7a9bf8f52e9f6e9f85e78bfad991845113f49 100644
--- a/sys/posix/sockets/posix_sockets.c
+++ b/sys/posix/sockets/posix_sockets.c
@@ -211,6 +211,8 @@ static int _ep_to_sockaddr(const struct _sock_tl_ep *ep,
 static int _sockaddr_to_ep(const struct sockaddr *address, socklen_t address_len,
                            struct _sock_tl_ep *out)
 {
+    assert(address != NULL);
+
     switch (address->sa_family) {
         case AF_INET:
             if (address_len < sizeof(struct sockaddr_in)) {
@@ -411,12 +413,12 @@ int accept(int socket, struct sockaddr *restrict address,
     switch (s->type) {
         case SOCK_STREAM:
             new_s = _get_free_socket();
-            sock = (sock_tcp_t *)new_s->sock;
             if (new_s == NULL) {
                 errno = ENFILE;
                 res = -1;
                 break;
             }
+            sock = (sock_tcp_t *)new_s->sock;
             if ((res = sock_tcp_accept(&s->sock->tcp.queue, &sock,
                                        recv_timeout)) < 0) {
                 errno = -res;
@@ -855,6 +857,9 @@ static ssize_t socket_recvfrom(socket_t *s, void *restrict buffer,
             break;
 #endif
         default:
+#if !defined(MODULE_SOCK_IP) && !defined(MODULE_SOCK_TCP) && !defined(MODULE_SOCK_UDP)
+            (void) recv_timeout;
+#endif
             res = -EOPNOTSUPP;
             break;
     }