[Bug 1840995] Re: check_stamp() function of apt.systemd.daily should not assume interval is a number
Launchpad Bug Tracker
1840995 at bugs.launchpad.net
Fri Sep 20 01:36:00 UTC 2019
This bug was fixed in the package apt - 1.9.4
---------------
apt (1.9.4) experimental; urgency=medium
* CMake: Pass -Werror=return-type to gcc
* CMake: Produce a fatal error if triehash could not be found
* apt.systemd.daily: Do not numerically check if intervals equal 0
(LP: #1840995)
* srvrec: Use re-entrant resolver functions
* Pass --abort-after=1 to dpkg when using --force-depends (Closes: #935910)
(LP: #1844634)
* Fix use of GTest to adjust for GTest 1.9
-- Julian Andres Klode <jak at debian.org> Thu, 19 Sep 2019 11:13:47
+0200
** Changed in: apt (Ubuntu)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to apt in Ubuntu.
https://bugs.launchpad.net/bugs/1840995
Title:
check_stamp() function of apt.systemd.daily should not assume interval
is a number
Status in apt package in Ubuntu:
Fix Released
Bug description:
In the second half of the function there is
# Calculate the interval in seconds depending on the unit specified
if [ "${interval%s}" != "$interval" ] ; then
interval="${interval%s}"
elif [ "${interval%m}" != "$interval" ] ; then
interval="${interval%m}"
interval=$((interval*60))
elif [ "${interval%h}" != "$interval" ] ; then
interval="${interval%h}"
interval=$((interval*60*60))
else
interval="${interval%d}"
interval=$((interval*60*60*24))
fi
so, a variable might hold something like "1d", "100m", etc.
Yet in the first there is a condition
if [ "$interval" -eq 0 ]; then
debug_echo "check_stamp: interval=0"
# treat as no time has passed
return 1
fi
which treats the value as a number and leads to
/usr/lib/apt/apt.systemd.daily: 87: [: Illegal number: 20h
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1840995/+subscriptions
More information about the foundations-bugs
mailing list