2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-22 01:49:11 +00:00
Yann E. MORIN 6ec958f27e lib/utils: detect failure to generate signals list and names
Currently, we generate the signal list and names by running cpp on our
header, and piping the result into sed.

However, when cpp fails [0], we do not catch that failure, as the error
code of the LHS of a pipe is lost, with the pipe returning the RHS-most
return code.

Fix that by introducing two new intermediate rules, each to generate the
preprocessed .i files, and use those as dependencies and input to the
rule that generates the headers. Those two .i files will be cleaned up
by the existing *.i glob.

[0] a failure happens on recent hosts, due to inconsistency with
time64_t and large-file support (lines elided and wrapped for
readability):

    /usr/bin/cpp [...] ./sys_signame.h \
    | /usr/bin/sed -e '1,/^int sudo_end_of_headers;/d' -e '/^#/d' > mksigname.h
    In file included from /usr/include/features.h:394,
                     from /usr/include/sys/types.h:25,
                     from ./sys_signame.h:4:
    /usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
       26 | #   error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
          |     ^~~~~
    /usr/bin/gcc [...] ./mksigname.c -o mksigname
    In file included from /usr/include/features.h:394,
                     from /usr/include/bits/libc-header-start.h:33,
                     from /usr/include/stdlib.h:26,
                     from ./mksigname.c:27:
    /usr/include/features-time64.h:26:5: error: #error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
       26 | #   error "_TIME_BITS=64 is allowed only with _FILE_OFFSET_BITS=64"
          |     ^~~~~
    make[2]: *** [Makefile:263: mksigname] Error 1

In that case, we were lucky that the subsequent gcc call also failed,
and for the same reason. That time64_t and lfs issue should be fixed (at
least investigated), but that does not mean we should not be more robust
when parsing the header either.

Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-02-18 07:17:58 -07:00
2023-03-22 19:26:07 -06:00
2021-08-19 09:48:01 -06:00
2010-01-18 05:45:25 +00:00
2024-02-18 07:10:08 -07:00
2022-01-25 13:06:11 -07:00
2023-11-28 15:00:04 -07:00
2023-12-29 14:43:39 -07:00

The sudo philosophy

Sudo is a program designed to allow a sysadmin to give limited root privileges to users and log root activity. The basic philosophy is to give as few privileges as possible but still allow people to get their work done.

Where to find sudo

Before building sudo, make sure you have the current version. The latest sudo may always be gotten via anonymous ftp from ftp.sudo.ws in the directory /pub/sudo/ or from the sudo web site, https://www.sudo.ws/

The distribution is sudo-M.m.tar.gz where M is the major version number and m is the minor version number. Beta versions of sudo may also be available. If you join the sudo-workers mailing list you will get the beta announcements (see the Mailing lists section below).

What's new

See the NEWS file for a list of major changes in this release. For a complete list of changes, see the ChangeLog. For a summary of major changes to the current stable release, see https://www.sudo.ws/releases/stable/.

If you are upgrading from an earlier version of Sudo, read docs/UPGRADE.md for information on changes in behavior that may affect you.

For a history of sudo see docs/HISTORY.md. You can find a list of contributors to sudo in docs/CONTRIBUTORS.md.

Building the release

Read the installation guide, INSTALL.md, before trying to build sudo. Pay special attention to the "OS dependent notes" section.

How to contribute

See docs/CONTRIBUTING.md for information on how you can help contribute to sudo.

Sudo is distributed under an ISC-style license. Refer to LICENSE.md for details.

Mailing lists

sudo-announce

This list receives announcements whenever a new version of sudo is released. https://www.sudo.ws/mailman/listinfo/sudo-announce

sudo-blog

This list receives a message when a new sudo blog article is available. https://www.sudo.ws/mailman/listinfo/sudo-blog

sudo-commits

This list receives a message for each commit made to the sudo source repository. https://www.sudo.ws/mailman/listinfo/sudo-commits

sudo-users

This list is for questions and general discussion about sudo. https://www.sudo.ws/mailman/listinfo/sudo-users

sudo-workers

This list is for people working on and porting sudo. https://www.sudo.ws/mailman/listinfo/sudo-workers

To subscribe to a list, visit its url (listed above) and enter your email address to subscribe. Digest versions are available but these are fairly low traffic lists so the digest versions are not a significant win.

Mailing list archives are also available. See the mailing list web sites for the appropriate links.

Sudo web page

There is a sudo web page at https://www.sudo.ws/ that contains documentation, downloads, a bug tracker, the source repo, the sudo blog, information about beta versions and other useful info.

Filing bug reports/issues

If you believe you have found a bug, you can either file a bug report in the sudo bug database, https://bugzilla.sudo.ws/, or open a GitHub issue, whichever you find easier. If you would prefer to use email, messages may be sent to the sudo-workers@sudo.ws mailing list (public) or to sudo@sudo.ws (private).

For sudo's security policy and how to report security issues, see docs/SECURITY.md.

Please check docs/TROUBLESHOOTING.md before submitting a bug report. When reporting bugs, be sure to include the version of sudo you are using, the operating system and/or distro that is affected, and, if possible, step-by-step instructions to reproduce the problem.

Description
No description provided
Readme 277 MiB
Languages
Gettext Catalog 35.1%
C 32.8%
Modelica 19%
Shell 5.2%
Makefile 3.7%
Other 4.1%