Fix sysmerge(8) and sysupgrade(8) /etc/sortix-release error handling.
This commit is contained in:
parent
9995df3638
commit
a80bc5d011
|
@ -20,6 +20,7 @@
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <stdbool.h>
|
#include <stdbool.h>
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
|
@ -156,14 +157,22 @@ int main(int argc, char* argv[])
|
||||||
const char* old_release_path = "/etc/sortix-release";
|
const char* old_release_path = "/etc/sortix-release";
|
||||||
struct release old_release;
|
struct release old_release;
|
||||||
if ( !os_release_load(&old_release, old_release_path, old_release_path) )
|
if ( !os_release_load(&old_release, old_release_path, old_release_path) )
|
||||||
|
{
|
||||||
|
if ( errno == ENOENT )
|
||||||
|
warn("%s", old_release_path);
|
||||||
exit(2);
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
char* new_release_path;
|
char* new_release_path;
|
||||||
if ( asprintf(&new_release_path, "%s/etc/sortix-release", source) < 0 )
|
if ( asprintf(&new_release_path, "%s/etc/sortix-release", source) < 0 )
|
||||||
err(2, "asprintf");
|
err(2, "asprintf");
|
||||||
struct release new_release;
|
struct release new_release;
|
||||||
if ( !os_release_load(&new_release, new_release_path, new_release_path) )
|
if ( !os_release_load(&new_release, new_release_path, new_release_path) )
|
||||||
|
{
|
||||||
|
if ( errno == ENOENT )
|
||||||
|
warn("%s", new_release_path);
|
||||||
exit(2);
|
exit(2);
|
||||||
|
}
|
||||||
free(new_release_path);
|
free(new_release_path);
|
||||||
|
|
||||||
// TODO: Check if /etc/machine matches the current architecture.
|
// TODO: Check if /etc/machine matches the current architecture.
|
||||||
|
|
|
@ -480,7 +480,11 @@ int main(void)
|
||||||
struct release new_release;
|
struct release new_release;
|
||||||
if ( !os_release_load(&new_release, "/etc/sortix-release",
|
if ( !os_release_load(&new_release, "/etc/sortix-release",
|
||||||
"/etc/sortix-release") )
|
"/etc/sortix-release") )
|
||||||
|
{
|
||||||
|
if ( errno == ENOENT )
|
||||||
|
warn("/etc/sortix-release");
|
||||||
exit(2);
|
exit(2);
|
||||||
|
}
|
||||||
|
|
||||||
char mnt[] = "/tmp/fs.XXXXXX";
|
char mnt[] = "/tmp/fs.XXXXXX";
|
||||||
if ( !mkdtemp(mnt) )
|
if ( !mkdtemp(mnt) )
|
||||||
|
|
Loading…
Reference in New Issue