diff --git a/debian/changelog b/debian/changelog index 8be6463c..c3123ac7 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,11 @@ +livecd-rootfs (2.600) UNRELEASED; urgency=medium + + [ Tobias Koch ] + * Do proper error checking when calling snap-tool info to determine + the base of a snap. + + -- Tobias Koch Mon, 15 Jul 2019 07:44:38 +0200 + livecd-rootfs (2.599) eoan; urgency=medium * Append the list of seeded snaps to manifests for all regular images. diff --git a/live-build/functions b/live-build/functions index 8eff0a90..7f224c46 100644 --- a/live-build/functions +++ b/live-build/functions @@ -483,12 +483,20 @@ _snap_preseed() { ;; *) # Determine if and what core snap is needed - local core_snap=$(/usr/share/livecd-rootfs/snap-tool info \ + local snap_info + + snap_info=$(/usr/share/livecd-rootfs/snap-tool info \ --cohort-key="${COHORT_KEY:-}" \ - --channel="$CHANNEL" "$SNAP_NAME" | \ - grep '^base:' | awk '{print $2}' + --channel="$CHANNEL" "${SNAP_NAME}" \ ) + if [ $? -ne 0 ]; then + echo "Failed to retrieve base of $SNAP_NAME!" + exit 1 + fi + + local core_snap=$(echo "$snap_info" | grep '^base:' | awk '{print $2}') + # If $core_snap is not the empty string then SNAP itself is not a core # snap and we must additionally seed the core snap. if [ -n "$core_snap" ]; then @@ -892,4 +900,4 @@ replace_kernel () { install --assume-yes "${new_kernel}" env DEBIAN_FRONTEND=noninteractive chroot "${mountpoint}" apt-get \ autoremove --purge --assume-yes -} \ No newline at end of file +}