From nobody Wed Jul 9 20:35:44 2025 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4bcqVm73cTz60wlF; Wed, 09 Jul 2025 20:35:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R10" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bcqVm4r7Bz3thT; Wed, 09 Jul 2025 20:35:44 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752093344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c24DL/4EadjO99XYoUF73DHHIGYYnpE7XvykC07IYnI=; b=h7fNTm0GAv5mWY7/9hLDJk6jxg6W7ouAkwqj6klg//Hgxo6d2ivo4QYjWrcFU3kfQOSNz8 VzSRc+p3B8gpA009pBGFdaSmq4w+nl6tLk4rHy5nkNs8cMIT4iuxV/6j5J1cOZDKKBGKxW m4Set3ICowcqQrL2lQzyEkzsTCAMlQtrtU6A8NV4j7RZxS6TKE5TbjWx9BfqUVE+QsiH3q TZIPSmtU3+VM4YG1WHyPrISjaVuVkNyZUEqBRTh29uJNDcjgIyclbfExwuilnLgb0VjeHz TEPe7SNok98eFObPkCJL4LqJHBGxrKG6z6EhNLL1F3mNBv8Bks0JxoQiFafrdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1752093344; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=c24DL/4EadjO99XYoUF73DHHIGYYnpE7XvykC07IYnI=; b=nsfR7io0hvg5grzxKBZgZhOEh0bi+y4+d+JE7lSP64ClNe5GEiDG8vF9gz6YsWw0QbLc8S rVO+TkbenekLYN2hTlogu+NL7x3F/Cug9GMBJbqdU7u8RBDmJi73nJ97lwS+NXHu5EfTq3 JSx3frc8JktVwZHlwy6PCZXmr/sBcFyB/qqGwgX/pH+VgNiifOzGaj8RFm40/+N1WZDQoQ n1D1AE7DH4rwllng2M61xrXm3q+hxmer+Cw9YDysdNK/OLoxcHKWy/BxxgsDmPYy8J7ug1 h7N6RIOVmF9yUVUzZYY7fi7fzHvt1vIZqDlZXc7IGHspuZr2XuPTuMzgnhnC8w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1752093344; a=rsa-sha256; cv=none; b=r9UbVjgz9ylSc7Y/X+rTZ77/dIoFW5KxJf+iGXZLjEaXUA1YuVmc0YOOL4Q9dLqeFih0Q/ w7aEeBRQsfFSOjwIpiDo0xwSkwReeoT/H0z8MaqrOxwhA1d+01RBkLHbbrDzWwxSwbRuJW TGIsaJ4RWG7pr4wGA69pPVGfbC5zT2oBvMGF11ikEF/bQGLhgXcQvacFInQH6/MgaklknO w94vEmeT8qQMp7OTblXNmqqh/OwaapV5QO1VNBeN6y7m9zZhVBLss5i2NvN1qkPj+R+338 +ZA+OQsUAq1/C9MQ8oe4ULfCU+eLIr42at93TizDPS4O91dx63+j9nOAZouniA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4bcqVm4S8wzdWX; Wed, 09 Jul 2025 20:35:44 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 569KZiSZ065718; Wed, 9 Jul 2025 20:35:44 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 569KZiLY065715; Wed, 9 Jul 2025 20:35:44 GMT (envelope-from git) Date: Wed, 9 Jul 2025 20:35:44 GMT Message-Id: <202507092035.569KZiLY065715@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 42e613018da5 - main - opendir, readdir, telldir: Use the correct types. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 42e613018da50ee6877d24815c7626d79629e707 Auto-Submitted: auto-generated The branch main has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=42e613018da50ee6877d24815c7626d79629e707 commit 42e613018da50ee6877d24815c7626d79629e707 Author: Dag-Erling Smørgrav AuthorDate: 2025-07-09 20:34:22 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2025-07-09 20:34:22 +0000 opendir, readdir, telldir: Use the correct types. Use either size_t or off_t (as appropriate) instead of long. Sponsored by: Klara, Inc. Reviewed by: kevans Differential Revision: https://reviews.freebsd.org/D51210 --- lib/libc/gen/gen-private.h | 4 ++-- lib/libc/gen/opendir2.c | 6 ++++-- lib/libc/gen/readdir.c | 4 ++-- lib/libc/gen/telldir.c | 4 ++-- lib/libc/gen/telldir.h | 6 +++--- 5 files changed, 13 insertions(+), 11 deletions(-) diff --git a/lib/libc/gen/gen-private.h b/lib/libc/gen/gen-private.h index 3792a61ff942..b6749b3435cd 100644 --- a/lib/libc/gen/gen-private.h +++ b/lib/libc/gen/gen-private.h @@ -43,8 +43,8 @@ struct pthread_mutex; */ struct _dirdesc { int dd_fd; /* file descriptor associated with directory */ - long dd_loc; /* offset in current buffer */ - long dd_size; /* amount of data returned by getdirentries */ + size_t dd_loc; /* offset in current buffer */ + size_t dd_size; /* amount of data returned by getdirentries */ char *dd_buf; /* data buffer */ int dd_len; /* size of data buffer */ off_t dd_seek; /* magic cookie returned by getdirentries */ diff --git a/lib/libc/gen/opendir2.c b/lib/libc/gen/opendir2.c index 7f207ed73441..c5c2e662efd8 100644 --- a/lib/libc/gen/opendir2.c +++ b/lib/libc/gen/opendir2.c @@ -264,6 +264,7 @@ DIR * __opendir_common(int fd, int flags, bool use_current_pos) { DIR *dirp; + ssize_t ret; int incr; int saved_errno; bool unionstack; @@ -313,10 +314,11 @@ __opendir_common(int fd, int flags, bool use_current_pos) * to prime dd_seek. This also checks if the * fd passed to fdopendir() is a directory. */ - dirp->dd_size = _getdirentries(dirp->dd_fd, + ret = _getdirentries(dirp->dd_fd, dirp->dd_buf, dirp->dd_len, &dirp->dd_seek); - if (dirp->dd_size < 0) + if (ret < 0) goto fail; + dirp->dd_size = (size_t)ret; dirp->dd_flags |= __DTF_SKIPREAD; } else { dirp->dd_size = 0; diff --git a/lib/libc/gen/readdir.c b/lib/libc/gen/readdir.c index 2a2fa999b7ce..32603c0b4677 100644 --- a/lib/libc/gen/readdir.c +++ b/lib/libc/gen/readdir.c @@ -48,8 +48,8 @@ struct dirent * _readdir_unlocked(DIR *dirp, int flags) { struct dirent *dp; - long initial_seek; - long initial_loc = 0; + off_t initial_seek; + size_t initial_loc = 0; for (;;) { if (dirp->dd_loc >= dirp->dd_size) { diff --git a/lib/libc/gen/telldir.c b/lib/libc/gen/telldir.c index b751fafd975f..1731cc4d7a2c 100644 --- a/lib/libc/gen/telldir.c +++ b/lib/libc/gen/telldir.c @@ -118,7 +118,7 @@ _seekdir(DIR *dirp, long loc) struct dirent *dp; union ddloc_packed ddloc; off_t loc_seek; - long loc_loc; + size_t loc_loc; ddloc.l = loc; @@ -171,7 +171,7 @@ _seekdir(DIR *dirp, long loc) * fetching a new block to fix any such telldir locations. */ void -_fixtelldir(DIR *dirp, long oldseek, long oldloc) +_fixtelldir(DIR *dirp, off_t oldseek, size_t oldloc) { struct ddloc_mem *lp; diff --git a/lib/libc/gen/telldir.h b/lib/libc/gen/telldir.h index 6d113491e819..02fd52af9060 100644 --- a/lib/libc/gen/telldir.h +++ b/lib/libc/gen/telldir.h @@ -46,9 +46,9 @@ */ struct ddloc_mem { LIST_ENTRY(ddloc_mem) loc_lqe; /* entry in list */ - long loc_index; /* key associated with structure */ + size_t loc_index; /* key associated with structure */ off_t loc_seek; /* magic cookie returned by getdirentries */ - long loc_loc; /* offset of entry in buffer */ + size_t loc_loc; /* offset of entry in buffer */ }; #ifdef __LP64__ @@ -102,7 +102,7 @@ bool _filldir(DIR *, bool); struct dirent *_readdir_unlocked(DIR *, int); void _reclaim_telldir(DIR *); void _seekdir(DIR *, long); -void _fixtelldir(DIR *dirp, long oldseek, long oldloc); +void _fixtelldir(DIR *dirp, off_t oldseek, size_t oldloc); DIR *__opendir_common(int, int, bool); #define RDU_SKIP 0x0001