From: Lennart Poettering Date: Mon, 4 Nov 2024 10:01:23 +0000 (+0100) Subject: sd-daemon: count array elements in size_t X-Git-Tag: v257-rc1~31^2~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=74806f71168baca9233bf70446a704644ad8febc;p=thirdparty%2Fsystemd.git sd-daemon: count array elements in size_t We fucked that up in the original sd_listen() calls, and then we fixed that on the newer flavours. But pour internal common implementation should of course use the full range size_t, as it should be. This then allows us to drop a redundant range check. --- diff --git a/src/libsystemd/sd-daemon/sd-daemon.c b/src/libsystemd/sd-daemon/sd-daemon.c index 26e4257a1ff..faf45c27509 100644 --- a/src/libsystemd/sd-daemon/sd-daemon.c +++ b/src/libsystemd/sd-daemon/sd-daemon.c @@ -457,7 +457,7 @@ static int pid_notify_with_fds_internal( pid_t pid, const char *state, const int *fds, - unsigned n_fds) { + size_t n_fds) { SocketAddress address; struct iovec iovec; @@ -728,16 +728,7 @@ _public_ int sd_pid_notifyf_with_fds( _cleanup_free_ char *p = NULL; int r; - /* Paranoia check: we traditionally used 'unsigned' as array size, but we nowadays more correctly use - * 'size_t'. sd_pid_notifyf_with_fds() and sd_pid_notify_with_fds() are from different eras, hence - * differ in this. Let's catch resulting incompatibilites early, even though they are pretty much - * theoretic only */ - if (n_fds > UINT_MAX) { - r = -E2BIG; - goto finish; - } - - else if (format) { + if (format) { va_list ap; va_start(ap, format);