devinfo_init() returns an errno, but doesn't set errno, so the error
message when it fails reflects some random thing rather than what it returned. Set errno to the return value.
This commit is contained in:
parent
51a9cfbf60
commit
b98d2b35df
@ -36,6 +36,7 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
#include <sys/types.h>
|
||||
#include <err.h>
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -242,7 +243,7 @@ int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
struct devinfo_dev *root;
|
||||
int c, uflag;
|
||||
int c, uflag, rv;
|
||||
char *path = NULL;
|
||||
|
||||
uflag = 0;
|
||||
@ -268,8 +269,10 @@ main(int argc, char *argv[])
|
||||
if (path && (rflag || uflag))
|
||||
usage();
|
||||
|
||||
if (devinfo_init())
|
||||
if ((rv = devinfo_init()) != 0) {
|
||||
errno = rv;
|
||||
err(1, "devinfo_init");
|
||||
}
|
||||
|
||||
if ((root = devinfo_handle_to_device(DEVINFO_ROOT_DEVICE)) == NULL)
|
||||
errx(1, "can't find root device");
|
||||
|
Loading…
Reference in New Issue
Block a user