The einfo_compare_version() in usr/src/cmd/boot/common/bblk_einfo.c is assuming the structure of the version strings is the same and is treating missing parts as error. This code is used only for boot block versioning and we have need to change the structure, to remove timestamp and add additional dotted version component, so we need to cope with such change.
Therefore we treat missing dotted version component as this version string is "older", and we do continue treating missing timestamp component as an error; this way, the newer boot blocks with additional version data are installed, and in case the dotted version part does match, missing timestamp is error condition and the already installed boot block will not get updated.
Updated by Electric Monk over 6 years ago
- % Done changed from 0 to 100
- Status changed from New to Closed
git commit a536a2a3182b56eef2630fb4b4509c9e106655e6
commit a536a2a3182b56eef2630fb4b4509c9e106655e6 Author: Toomas Soome <email@example.com> Date: 2017-03-03T13:27:09.000Z 7722 bootblock versioning needs to deal with missing data Reviewed by: Hans Rosenfeld <firstname.lastname@example.org> Reviewed by: Richard Lowe <email@example.com> Approved by: Dan McDonald <firstname.lastname@example.org>