Commit Graph

446 Commits

Author SHA1 Message Date
Lennart Poettering
fa70beaabc macro: add macro for precisely determining length of decimal string formatting of a numeric type 2013-04-02 17:47:59 +02:00
Lennart Poettering
5c0aa72a49 util: add a bit of syntactic sugar for saving/restoring errno 2013-04-02 17:47:59 +02:00
Zbigniew Jędrzejewski-Szmek
050fbdb878 shared/cgroup-show: fix leak of "pid" 2013-04-01 23:43:49 -04:00
Cristian Rodríguez
9607d9470e Always use our own MAX/MIN definitions
code in src/shared/macro.h only defined MAX/MIN in case
they were not defined previously. however the MAX/MIN
macros implemented in glibc are not of the "safe" kind but defined
as:

define MIN(a,b) (((a)<(b))?(a):(b))
define MAX(a,b) (((a)>(b))?(a):(b))

Avoid nasty side effects by using our own versions instead.

Also fix the warnings derived from this change.

[zj: - modify MAX3 macro to fix warning about _a shadowing _a,
     - do bootchart/svg.c too,
     - remove unused MIN3.]
2013-04-01 23:43:48 -04:00
Zbigniew Jędrzejewski-Szmek
7989e1f2d7 Partially revert e62d8c3944
The ~80 chars per line part wasn't well received.
2013-03-31 19:50:30 -04:00
Zbigniew Jędrzejewski-Szmek
e62d8c3944 Modernization
Use _cleanup_ and wrap lines to ~80 chars and such.
2013-03-31 14:36:12 -04:00
Zbigniew Jędrzejewski-Szmek
3c8bed4ee0 strbuf: replace quick sort with bubble sort
No need to call the heavy artillery, when the original array
is sorted. Reduces complexity from n² log n to n log n, where
n is the number of items in the array, not very large, but
still.
2013-03-31 14:35:17 -04:00
Zbigniew Jędrzejewski-Szmek
a9c307e5d2 strbuf: fix leak on memory error
Not very likely, but let's fix it for the matter of
principle.
2013-03-31 14:34:24 -04:00
Zbigniew Jędrzejewski-Szmek
4dd1de72e8 Remove some dead code
Based on coverity report.
2013-03-31 14:28:36 -04:00
Lennart Poettering
392d5b378c bus: parse matches locally and allow registration of callbacks for them
This includes code to parse and split up match strings which will also
be useful to calculate bloom filter masks when the time comes.
2013-03-31 16:16:37 +02:00
Lennart Poettering
2181a7f558 bus: implement server mode, and anonymous authentication 2013-03-30 15:21:55 +01:00
Lennart Poettering
a3de5ae1d7 prioq: consider a NULL prioq empty 2013-03-30 15:21:55 +01:00
Lennart Poettering
830f01f0bc unit: no need to export variables if we can avoid it 2013-03-30 15:21:54 +01:00
Lennart Poettering
f04c0bd6ed utmp: make gcc shut up, we need to pass an int here, not size_t 2013-03-29 15:47:18 +01:00
Zbigniew Jędrzejewski-Szmek
8333c77edf Always use errno > 0 to help gcc
gcc thinks that errno might be negative, and functions could return
something positive on error (-errno). Should not matter in practice,
but makes an -O4 build much quieter.
2013-03-29 10:12:41 -04:00
Zbigniew Jędrzejewski-Szmek
76877b46b6 tests: add some silly tests for path-util.c 2013-03-28 23:45:59 -04:00
Zbigniew Jędrzejewski-Szmek
844ec79b3c catalog: open up catalog internals
In order to write tests for the catalog functions, they
are made non-static and start taking a 'database' parameter,
which is the name of a file with the preprocessed catalog
entries.

This makes it possible to make test-catalog part of the
normal test suite, since it now only operates on files
in /tmp.

Some more tests are added.
2013-03-28 23:45:59 -04:00
Zbigniew Jędrzejewski-Szmek
2688887653 utmp-wtmp: don't try to read past end of string
systemd-199/src/shared/utmp-wtmp.c:228: buffer_size_warning: Calling
strncpy with a maximum size argument of 32 bytes on destination array
"store.ut_line" of size 32 bytes might leave the destination string
unterminated.

The destination string is unterminated on purpose, but we must
remember that.
2013-03-28 23:24:55 -04:00
Václav Pavlín
f36a783ca7 shared: free dt (temporary dir name) on fail
[zj: modified to not to try to rmdir() dir we haven't created.]
2013-03-27 12:01:44 -04:00
Zbigniew Jędrzejewski-Szmek
49e5de64e2 tests: skip bus test if bus cannot be opened
To make the result more visible, special return value
is used to tell automake that the test was skipped. While
at it, use the same return value in other skipped tests.
2013-03-26 23:50:44 -04:00
Zbigniew Jędrzejewski-Szmek
3baed19327 Simplify the meaning of %s
The rules governing %s where just too complicated. First of
all, looking at $SHELL is dangerous. For systemd --system,
it usually wouldn't be set. But it could be set if the admin
first started a debug shell, let's say /sbin/sash, and then
launched systemd from it. This shouldn't influence how daemons
are started later on, so is better ignored. Similar reasoning
holds for session mode. Some shells set $SHELL, while other
set it only when it wasn't set previously (e.g. zsh). This
results in fragility that is better avoided by ignoring $SHELL
totally.

With $SHELL out of the way, simplify things by saying that
%s==/bin/sh for root, and the configured shell otherwise.
get_shell() is the only caller, so it can be inlined.

Fixes one issue seen with 'make check'.
2013-03-26 23:49:44 -04:00
Lennart Poettering
2fd9ae2e9b bus: implement 'unixexec:' protocol 2013-03-25 02:33:35 +01:00
Lennart Poettering
2c93b4efec bus: implement support for FD passing 2013-03-25 02:33:34 +01:00
Lennart Poettering
4589f5bb0a conf-parser: when we parse a string list, always fill in something
Some code really wants to know whether there was a string list parsed,
so don't take the shortcut here, and always allocate a string list, even
if it is an empty one.

https://bugs.freedesktop.org/show_bug.cgi?id=62558
2013-03-23 04:32:43 +01:00
Colin Walters
a5a5ade34c dbus: Do send out "replies" to signals
Some parts of systemd (at least the DBus activation codepath) "reply"
to signals, which of course have the no-reply flag set.  We will be
defensive here and still send out a reply if we're passed a signal.

Regression introduced by: c6a818c820

Reported-by: Mantas Mikulėnas <grawity@gmail.com>
Tested-by: Mantas Mikulėnas <grawity@gmail.com>
2013-03-22 23:37:11 +01:00
Zbigniew Jędrzejewski-Szmek
48deb058b6 util: workaround two gcc warnings
gcc does not know that errno cannot be negative, and warns
about unitialized variables later on. Kill the warnings by
returning -errno only after checking that errno is positive.
2013-03-22 15:40:37 -04:00
Zbigniew Jędrzejewski-Szmek
478c82693c build-sys: move acl searching code into libsystemd-acl
This loop over acls is a bit too much to keep inside
of another loop.
2013-03-22 15:31:45 -04:00
Lennart Poettering
aa3c5cf8ee util: be more picky when validating hostnames
No longer allow dots at the beginning or end of host names, Or double
dots.

https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1152187/comments/14
2013-03-22 17:59:49 +01:00
Lennart Poettering
4468addca6 journalctl: give a nice hint about group membership based on ACLs of /var/log/journal
If we notice that we unprivileged and not in any of the groups which
have access to /var/log/journal, print a nice message about which groups
do.

This checks and prints all groups that are in the default ACL for
/var/log/journal, which is not necessarily correct for all journal
files, but pretty close.
2013-03-22 17:44:19 +01:00
Zbigniew Jędrzejewski-Szmek
742af54adc efivars: fix return code
Was returning 1 on read error.
2013-03-21 22:39:24 -04:00
Lennart Poettering
e3017af973 bus: implement full method call timeout logic 2013-03-21 22:53:29 +01:00
Lennart Poettering
30bdd69525 shared: add simple priority queue implementation 2013-03-21 02:54:47 +01:00
Zbigniew Jędrzejewski-Szmek
4750fade13 Remove some unused variables 2013-03-20 19:16:01 -04:00
Lennart Poettering
9a17484d98 bus: implement demarshaller 2013-03-20 23:00:09 +01:00
Lennart Poettering
66e35261ef util: add hexmem() and strextend() calls 2013-03-20 23:00:09 +01:00
Lennart Poettering
a9c55a882f macro: add CHAR_TO_STR macro to make a one character string from a char 2013-03-20 22:58:40 +01:00
Lennart Poettering
907809fc6a macro: don't redefine CLAMP if it is already defined by glib or some other library 2013-03-20 22:58:40 +01:00
Zbigniew Jędrzejewski-Szmek
d34cd37490 Make PrivateTmp dirs also inaccessible from the outside
Currently, PrivateTmp=yes means that the service cannot see the /tmp
shared by rest of the system and is isolated from other services using
PrivateTmp, but users can access and modify /tmp as seen by the
service.

Move the private /tmp and /var/tmp directories into a 0077-mode
directory. This way unpriviledged users on the system cannot see (or
modify) /tmp as seen by the service.
2013-03-20 14:08:41 -04:00
Zbigniew Jędrzejewski-Szmek
763c7aa288 journal,shared: add _cleanup_journal_close_ 2013-03-18 19:49:30 -04:00
Michal Sekletar
c17ec25e4d core: reuse the same /tmp, /var/tmp and inaccessible dir
All Execs within the service, will get mounted the same
/tmp and /var/tmp directories, if service is configured with
PrivateTmp=yes. Temporary directories are cleaned up by service
itself in addition to systemd-tmpfiles. Directory which is mounted
as inaccessible is created at runtime in /run/systemd.
2013-03-15 22:56:40 -04:00
Lennart Poettering
961e452692 strv: fix STRV_FOREACH_PAIR macro definition 2013-03-15 16:49:07 +01:00
Zbigniew Jędrzejewski-Szmek
1c17cbed55 fileio: use _cleanup_ 2013-03-13 22:50:04 -04:00
Zbigniew Jędrzejewski-Szmek
886a64fe69 logs-show: export logic to add matches for units
After that functions which add matches, show_journal_by_unit
and show_journal_by_user_unit, become nearly identical, so
I merged them into one function.
2013-03-13 19:53:29 -04:00
Michal Schmidt
6282c859bd util, manager: and mempset() and use it
Just like mempcpy() is almost identical to memcpy() except the useful
return value, so is the relation of mempset() to memset().
2013-03-13 14:14:13 +01:00
Kay Sievers
bc6f2e7c62 bootctl: print secure boot flags 2013-03-10 22:48:27 +01:00
Michal Schmidt
f620dff8dd util: fix printing of welcome message
Commit 984a2be4 failed to adjust this caller of status_printf().
2013-03-08 10:59:15 +01:00
Michal Schmidt
a740c14c59 shared: inline trivial auto-cleanup functions 2013-03-08 10:09:31 +01:00
Michal Schmidt
5f1be48b26 shared: remove pointless checks in auto-cleanup functions
The argument given to the __attribute__((cleanup)) functions is the
address of the variable that's going out of scope. It cannot be NULL.
The "if (!s)" check in set_freep() is pointless.

Perhaps "if (!*s)" was intented. But that's pointless too, because
set_free()/set_free_free() are OK to call with a NULL argument (just
like free()).

Setting "*s = NULL" is pointless, because the variable that s points
to is about to go out of scope.

The same holds for strv_freep().
2013-03-08 10:09:31 +01:00
Lennart Poettering
b47ef6a085 pager: add -M to $LESS to make the bottom line nicer 2013-03-07 21:43:28 +01:00
Lennart Poettering
a4c41bf3fa pager: always override LESS
https://bugzilla.redhat.com/show_bug.cgi?id=868383

Primary reason to do this is to ensure "-e" works as intended, and is
not ignored because the user set his own LESS variable.
2013-03-07 21:28:09 +01:00