Ruediger Meier [Tue, 31 Mar 2015 12:19:40 +0000 (14:19 +0200)]
tests: introduce TS_LOOP_DEVS for cleanup
We are maintaining an array TS_LOOP_DEVS to de-initialize devices
always on exit. Until now there was no cleanup in ts_skip().
The downside is that we can't execute ts_device_init() in a subshell
anymore. The device is returned via global variable TS_LODEV, similar
like we do already in ts_scsi_debug_init().
Tests which don't use ts_device_init() to create loop devices may use
ts_register_loop_device() to get them cleaned up later.
If the ctl->hdr is just checked not to be NULL syslog message will not
have valid header, so generating such is not optional when reading
message from stdin and writing it to remote destination.
Reviewed-by: Bernhard Voelker <mail@bernhard-voelker.de> Signed-off-by: Patrick Plagwitz <patrick.plagwitz@fau.de> Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Karel Zak [Wed, 25 Mar 2015 10:08:22 +0000 (11:08 +0100)]
libfdisk: fix symbols versioning script
Really stupid copy & past mistake. The libfdisk symbols should not be
prefixed by MOUNT_ suffix.
This change makes binaries linked with libfdisk 2.26 incompatible with
new libfdisk. Fortunately, 2.26 has been the first release and very
probably the library has been used for util-linux fdisks only.
Ruediger Meier [Tue, 24 Mar 2015 11:22:13 +0000 (12:22 +0100)]
last, fix race when comparing time stamps
It is just luck if two time() calls happen within the same
second. Introduced in 31d28e09.
Actually I don't like adding another global variable but this
way we avoid bigger refactoring. IMO it's questionable why
lastdate, lastdown, etc. are initialized with current time() at
all. It looks unsafe to print "still running" always when
logout_time = now.
Sami Kerola [Sun, 22 Mar 2015 23:05:26 +0000 (23:05 +0000)]
dmesg: fix shadow declaration
sys-utils/dmesg.c:650:9: warning: declaration of 's' shadows a previous local [-Wshadow]
sys-utils/dmesg.c:619:12: warning: shadowed declaration is here [-Wshadow]
And since the code had to be touched deprecate loop printing one character
at a time, in favour of printf and instruction to repeat spaces the number
required.
Karel Zak [Fri, 20 Mar 2015 11:42:33 +0000 (12:42 +0100)]
mount: don't remount read-only on --bind
mount(8) tries to mount read-only when the previous attempt ends with
EROFS or EACCES. This is bad idea for bind mounts as "ro,bind" has
a special semantic.
Karel Zak [Tue, 17 Mar 2015 10:10:20 +0000 (11:10 +0100)]
blockdev: fix whole-disk start sector usage
Since 569d1dac7bc64457aac11163b6a91ce9b41a6715 we read device start
sector from the /sys/block/.../start file. The file exists only for
partitions, for wholedisk is the start of the device always zero.
References: https://bugzilla.redhat.com/show_bug.cgi?id=1202443 Signed-off-by: Karel Zak <kzak@redhat.com>
Ruediger Meier [Mon, 16 Mar 2015 10:21:49 +0000 (11:21 +0100)]
travis: move install script to .travis-functions.sh
Now this snippet can be re-used by non-travis systems. For example
on drone.io we can use this simple build script:
......
MAKE_CHECK="root"
source ./.travis-functions.sh
travis_install_script || exit
travis_before_script || exit
ret=0
travis_script || ret=$?
travis_after_script
exit $ret
......
if the LOGGER_TEST_* variables are not specified then default to
standard logger(1) behavior.
Note that it would be possible to use for example "unshare --utc" to
make hostname stable and portable, but LOGGER_TEST_* variables allow
to keep the tests less complex.
Ruediger Meier [Thu, 12 Mar 2015 18:08:26 +0000 (19:08 +0100)]
tests: fix fdisk/bsd for ppc64le
Actually Aurelien's patch a80886e9 should have addressed this already
because it's the case LE, BSD_LABELSECTOR = 0, BSD_LABELOFFSET = 64.
I've asked about this on mailing list but couldn't get more
informations.
Thread "test fdisk/bsd on exotic archs":
http://comments.gmane.org/gmane.linux.utilities.util-linux-ng/10621
Karel Zak [Fri, 13 Mar 2015 10:13:26 +0000 (11:13 +0100)]
last: fix utmplist usage
last(1) uses a global list of entries, this is unnecessary and it's
also mistake because the pointer to the list is not set to NULL when
last(1) opens another utmp file. For example:
Karel Zak [Tue, 10 Mar 2015 11:51:44 +0000 (12:51 +0100)]
findmnt: don't rely on st_dev for --target
The overlay filesystem does not provide usable st_dev (in traditional
UNIX way). It's necessary to search in /proc/self/mountinfo to detect
which path element is mountpoint.
Rainer Gerhards [Sat, 7 Mar 2015 10:49:00 +0000 (11:49 +0100)]
logger: bugfix: missing sanity checks with --prio-prefix option
There were no apparent sanity checks other than applying the logmask
when reading PRI values from files. As such, invalid PRIs (tested with
values 192, 210, and 2100) are accepted. This in turn can trigger
problems in various receivers, especially older versions. See here
for details:
Note that 2100 was changed to 52 as described in above link.
This patch refactors PRI processing. Invalid PRIs are detected and in
this case the message is sent with the default priority, with the
invalid pri being part of the message to be sent. This is along the
line of what 2.26 did when it detected the PRI was invalid.
The refactoring now also enables pricese tracking of syslog header
length in all cases, so --size is now strictly obeyed.
Rainer Gerhards [Fri, 6 Mar 2015 17:52:26 +0000 (18:52 +0100)]
logger: refactor message generation
Previously, the message format was generated in one big step. Now
this is refactored to generate the header independently. This not
only provides a better isolation of functionality, but enables
to calculate the size of the header *before* generating the user
part of the message. That in turn is needed in order to precisely
enforce the message size limit. This is especially important while
processing files, as here parts of the message may be lost if the
receiver truncates the message. The file reader itself tries to
guard against this by reading only the permitted number of bytes,
but without knowing the header size, it would mis-guess here.
Note that when --prio-prefix is given, we still do not know exactly
the header length, because the PRI value is between 1 and 3 bytes.
Unfortunately, we do not know the actual size before reading. With
the current (simple) approach, we need to read the full line before
getting the PRI, so this is a hen-egg problem. To solve this, a
more complex reader would be required. It is questionable if this
is necessary for a tool like logger. So currently, we still have a
2-byte window of uncertainty if --prio-prefix is given.