No description
Find a file
Karel Zak 8a937b74de lslogins: avoid one-past-the-end write in get_sgroups()
get_sgroups() drops the primary GID from the list returned by
getgrouplist() by overwriting it with the last element. The search loop
ends with the index equal to the list length when the GID is not found,
and the old "if (*len)" guard let the store happen anyway, writing one
element past the allocated array.

getgrouplist() always includes the GID it is given, so this is not
reachable in practice, but do not depend on it; only remove the entry
when it has really been found. The new condition also covers the empty
list, so the previous guard is no longer needed.

Signed-off-by: Karel Zak <kzak@redhat.com>
2026-09-29 14:06:29 +02:00
.github tools: add checkcloexec.sh to detect missing close-on-exec flags 2026-09-08 14:52:22 +02:00
agetty-cmd tree-wide: add missing close-on-exec flags 2026-09-08 15:04:51 +02:00
bash-completion findmnt: add --net and --local filters 2026-09-09 10:30:38 +02:00
config
disk-utils Merge branch 'branch-05' of https://github.com/Leefancy/util-linux 2026-09-22 10:44:33 +02:00
Documentation
include Merge branch 'script-playutils-validate-timing-delta' of https://github.com/mi4r/util-linux 2026-09-17 11:34:49 +02:00
lib Merge branch 'mbsalign-csi-width' of https://github.com/Ar-maan05/util-linux 2026-09-21 15:08:36 +02:00
libblkid
libfdisk Merge branch 'PR/libfdisk-ask-string' of https://github.com/karelzak/util-linux-work 2026-09-09 11:47:46 +02:00
liblastlog2 tree-wide: add missing close-on-exec flags 2026-09-08 15:04:51 +02:00
libmount libmount: restore errno in mnt_context_get_excode() 2026-09-22 10:26:08 +02:00
libsmartcols tree-wide: add missing close-on-exec flags 2026-09-08 15:04:51 +02:00
libuuid tree-wide: add missing close-on-exec flags 2026-09-08 15:04:51 +02:00
login-utils lslogins: avoid one-past-the-end write in get_sgroups() 2026-09-29 14:06:29 +02:00
lsblk-cmd
lsfd-cmd
m4
man-common
misc-utils Merge branch 'fix-copyfilerange-range-read-error' of https://github.com/1234binpig/util-linux 2026-09-21 14:10:49 +02:00
pam_lastlog2
po
po-man
schedutils
sys-utils setpriv: match Landlock fs rights exactly 2026-09-23 18:26:59 -04:00
term-utils wall: fix off-by-one in is_gr_member() group matching 2026-09-27 18:20:51 +10:00
tests Merge branch 'fix/setpriv-landlock-fs-exact-match' of https://github.com/Ar-maan05/util-linux 2026-09-29 13:46:39 +02:00
text-utils hexdump: fail on format-file read errors 2026-09-18 11:47:50 +08:00
tools Merge branch 'PR/mount-restricted-fd-test' of https://github.com/karelzak/util-linux-work 2026-09-16 15:10:36 +02:00
.clangd
.editorconfig
.gitignore
.packit.yaml
.shellcheckrc
AGENTS.md
AUTHORS
autogen.sh
ChangeLog
CLAUDE.md
configure.ac Merge branch 'hungfs' of https://github.com/masatake/util-linux 2026-09-17 11:31:34 +02:00
COPYING
Makefile.am tools: add checkcloexec.sh to detect missing close-on-exec flags 2026-09-08 14:52:22 +02:00
meson.build Merge branch 'hungfs' of https://github.com/masatake/util-linux 2026-09-17 11:31:34 +02:00
meson_options.txt test_mkfds: add hungfs fuse file system implementation 2026-09-05 00:38:27 +09:00
NEWS
README
README.licensing
util-linux.doap

				  util-linux

		util-linux is a random collection of Linux utilities

     Note: for the years 2006-2010 this project was named "util-linux-ng".

COMPILE & INSTALL:

      See Documentation/HOWTO-BUILDING.md.

MAILING LIST:

      E-MAIL:  util-linux@vger.kernel.org
      URL:     http://vger.kernel.org/vger-lists.html#util-linux
      ARCHIVE: https://lore.kernel.org/util-linux/

      The mailing list will reject email messages that contain:
       - more than 100K characters
       - html
       - spam phrases/keywords
      See: http://vger.kernel.org/majordomo-info.html#taboo

IRC CHANNEL:

      #util-linux at libera.chat:

      irc://irc.libera.chat/util-linux

      The IRC channel and Mailing list are for developers and project
      maintainers. For end users it is recommended to utilize the
      distribution's support system.

BUG REPORTING:

      E-MAIL: util-linux@vger.kernel.org
      Web:    https://github.com/util-linux/util-linux/issues

      Bug reports with sensitive or private information: Karel Zak <kzak@redhat.com>

      This project has no resources to provide support for distribution specific
      issues. For end users it is recommended to utilize the distribution's
      support system.

NLS (PO TRANSLATIONS):

      PO files are maintained by:
	  https://translationproject.org/domain/util-linux.html

VERSION SCHEMA:

      Standard releases:
	  <major>.<minor>[.<maint>]
	     major = fatal and deep changes
	     minor = typical release with new features
	     maint = maintenance releases; bug fixes only

      Development releases:
	 <major>.<minor>-rc<N>

SOURCE CODE:

 Download archive:
	  https://www.kernel.org/pub/linux/utils/util-linux/

 See also:
     Documentation/HOWTO-CONTRIBUTING.md
     Documentation/HOWTO-HACKING.md
     Documentation/HOWTO-TESTING.md

 SCM (Source Code Management) Repository:

    Primary repository:
	  git clone git://git.kernel.org/pub/scm/utils/util-linux/util-linux.git

    Backup repository:
	  git clone https://github.com/util-linux/util-linux.git

    Web interfaces:
	  https://git.kernel.org/cgit/utils/util-linux/util-linux.git
	  https://github.com/util-linux/util-linux

      Note: the GitHub repository may contain temporary development branches too.

      The kernel.org repository contains master (current development) and stable/*
      (maintenance) branches only. All master or stable/* changes are always pushed
      to both repositories at the same time.

    Repository Branches: 'git branch -a'
	  Master Branch:
	   - Continuously developed, no feature freeze or translation freezes.
	   - Day-to-day status is: 'it works for me'. This means that its
	     normal state is useful but not well tested.

	  Stable Branches:
	   - Public releases.
	   - Branch name: stable/v<major>.<minor>.
	   - Created from the 'master' branch.
	   - The release candidates and final release are always based
             on the stable branch.
	   - Maintenance releases are part of, and belong to, their respective
	     stable branch. As such, they are tags(<major>.<minor>.<maint>) and
	     not branches of their own. They are not part of, visible in, or
	     have anything to do with the 'master' development branch. In git
	     terminology: maintenance releases are not reachable from 'master'.
	   - When initially cloned (as with the 'git clone' command given above),
	     these branches are created as 'remote tracking branches' and are
	     only visible by using the -a or -r options to 'git branch'. To
	     create a local branch, use the desired tag with this command:
	     'git checkout -b v2.29.2 v2.29.2'

    Tags: 'git tag'
	   - v<version> tag is created in the stable branch for every release.
	   - v<version>-start is created in the master branch to start work on the next release.
	   - All tags are signed by the maintainer's PGP key.


WORKFLOW EXAMPLE:

    Development                     Releases
    (Master Branch)                 (Stable/vX.Y Branch)

    - Sync latest translations
      from translationproject.org
    - Tag v<X.Y+1>-devel            - Fork from master to stable/v<X.Y> branch
                                      - Code stabilization
                                    - RC1 (Tag v<X.Y>-rc1)
                                      - Backport bug fixes
                                    - RC2 (Tag v<X.Y>-rc2)
                                      - po/ and po-man/ translations available on
                                        translationproject.org/
                                      - Wait 7-17 days for translators
                                      - Sync latest translations
                                      - Backport bug fixes
                                    - Final release v<X.Y> (Tag v<X.Y>)
                                      ...
                                    - Release v<X.Y>.1
                                      ...
                                    - Release v<X.Y>.2