1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-01 09:21:26 +03:00
The systemd System and Service Manager
Go to file
Zbigniew Jędrzejewski-Szmek 830464c3e4 tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0
All underlying glibc calls are free to return NULL if the size argument
is 0. We most often call those functions with a fixed argument, or at least
something which obviously cannot be zero, but it's too easy to forget.

E.g. coverity complains about "rows = new0(JsonVariant*, n_rows-1);" in
format-table.c There is an assert that n_rows > 0, so we could hit this
corner case here. Let's simplify callers and make those functions "safe".

CID #1397035.

The compiler is mostly able to optimize this away:
$ size build{,-opt}/src/shared/libsystemd-shared-239.so
(before)
   text	   data	    bss	    dec	    hex	filename
2643329	 580940	   3112	3227381	 313ef5	build/src/shared/libsystemd-shared-239.so     (-O0 -g)
2170013	 578588	   3089	2751690	 29fcca	build-opt/src/shared/libsystemd-shared-239.so (-03 -flto -g)
(after)
   text	   data	    bss	    dec	    hex	filename
2644017	 580940	   3112	3228069	 3141a5	build/src/shared/libsystemd-shared-239.so
2170765	 578588	   3057	2752410	 29ff9a	build-opt/src/shared/libsystemd-shared-239.so
2018-12-21 16:39:34 +01:00
.github/ISSUE_TEMPLATE docs: move markdown docs from .github/ to docs/ 2018-09-08 13:39:03 -07:00
.lgtm/cpp-queries lgtm: drop redundant newlines 2018-10-26 14:52:17 +02:00
.mkosi mkosi: update libqrencode in Debian config 2018-12-15 10:55:10 +01:00
catalog catalog: update Polish translation 2018-11-19 09:23:04 +01:00
coccinelle tree-wide: more IOVEC_MAKE() conversions 2018-11-28 13:08:19 +09:00
docs remount-fs: optionally remount / writable, if we are told through an env var 2018-12-18 14:47:44 +01:00
factory/etc man,factory: update factory config for nsswitch.conf to match the man pages 2018-11-27 22:35:02 +01:00
hwdb hwdb: update database 2018-12-21 10:37:39 +01:00
man Merge pull request #11142 from ssahani/bond-dynamic-tlb 2018-12-17 02:06:05 +01:00
modprobe.d Add SPDX license headers to various assorted files 2017-11-19 19:08:15 +01:00
network Drop my copyright headers 2018-06-14 13:03:20 +02:00
po l10n: update Czech Translation 2018-12-04 09:25:39 +01:00
presets Drop my copyright headers 2018-06-14 13:03:20 +02:00
rules rules: watch metadata changes on DASD devices 2018-12-04 20:57:47 +01:00
shell-completion Merge pull request #10221 from lucaswerkmeister/bash-completion 2018-12-18 14:53:58 +01:00
src tree-wide: make new/new0/malloc_multiply/reallocarray safe for size 0 2018-12-21 16:39:34 +01:00
sysctl.d sysctl.d: switch net.ipv4.conf.all.rp_filter from 1 to 2 2018-11-28 16:29:01 +01:00
sysusers.d sysusers,tmpfiles: re-create systemd-network, systemd-resolve and systemd-timesync 2018-07-16 17:11:50 +02:00
test tests: explicitly enable user namespaces for TEST-13-NSPAWN-SMOKE 2018-12-21 05:19:37 +09:00
tmpfiles.d sysusers,tmpfiles: re-create systemd-network, systemd-resolve and systemd-timesync 2018-07-16 17:11:50 +02:00
tools tree-wide: drop header for emacs from python scripts 2018-12-10 03:17:33 +09:00
travis-ci travis: mount tmpfs on /tmp before running the tests 2018-12-09 11:46:23 +01:00
units units: set NoNewPrivileges= for all long-running services 2018-12-18 14:21:35 +01:00
xorg login: avoid external process call 2018-01-12 18:02:57 +01:00
.dir-locals.el coding style: reduce text width to 109 characters 2018-12-08 10:14:28 +01:00
.editorconfig editorconfig: add rule for meson.build files (#6671) 2017-08-28 16:37:23 +02:00
.gitattributes
.gitignore gitignore: add nspawn image lock and mkosi temporary files 2018-09-07 20:00:22 +02:00
.lgtm.yml lgtm: use python3 2018-12-10 03:07:17 +09:00
.mailmap sort .mailmap alphabetically 2018-12-18 12:55:00 +01:00
.travis.yml travis: also compile systemd on Debian Testing 2018-12-07 17:12:58 +01:00
.vimrc coding style: reduce text width to 109 characters 2018-12-08 10:14:28 +01:00
.ycm_extra_conf.py ycm: add doc string for all the functions in configuration file 2017-11-29 13:21:49 -07:00
configure build-sys: add basic support for ./configure && make && make install 2017-07-18 10:05:06 -04:00
LICENSE.GPL2
LICENSE.LGPL2.1
Makefile build-sys: Fix Makefile wrapper for install target (#6548) 2017-08-07 11:29:20 +02:00
meson_options.txt meson: make net.naming-scheme= default configurable 2018-12-12 10:09:36 +01:00
meson.build Merge pull request #11197 from keszybz/various-fixups 2018-12-18 14:35:00 +01:00
mkosi.build mkosi: update the boot loader from our freshly built one 2018-10-16 16:44:34 +02:00
mkosi.default mkosi: create .mkosi directory 2016-10-06 11:53:58 -04:00
NEWS NEWS: mention DynamicUser= is disabled for networkd, resolved and timesyncd 2018-12-21 05:22:21 +09:00
README Drop support for lz4 < 1.3.0 2018-10-29 21:54:42 +01:00
README.md README: embed a CentOS CI badge into README 2018-12-05 12:42:52 +01:00
TODO Merge pull request #10912 from poettering/gpt-root-rw 2018-12-20 11:37:41 +01:00
zanata.xml po: add basic fedora.zanata.org configuration 2018-02-19 13:56:57 +01:00

systemd - System and Service Manager

Count of open issues over time Count of open pull requests over time Semaphore CI Build Status
Coverity Scan Status
CII Best Practices
Travis CI Build Status
Language Grade: C/C++
CentOS CI Build Status

Details

General information about systemd can be found in the systemd Wiki.

Information about build requirements is provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the Hacking guide for information on how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.

Stable branches with backported patches are available in the stable repo.