Changeset View
Changeset View
Standalone View
Standalone View
usr.sbin/efivar/efivar.c
Show First 20 Lines • Show All 112 Lines • ▼ Show 20 Lines | rep_errx(int eval, const char *fmt, ...) | ||||
va_start(ap, fmt); | va_start(ap, fmt); | ||||
verrx(eval, fmt, ap); | verrx(eval, fmt, ap); | ||||
va_end(ap); | va_end(ap); | ||||
} | } | ||||
static void | static void | ||||
breakdown_name(char *name, efi_guid_t *guid, char **vname) | breakdown_name(char *name, efi_guid_t *guid, char **vname) | ||||
{ | { | ||||
char *cp; | char *cp, *ocp; | ||||
bool again = true; | |||||
ocp = NULL; | |||||
while (again) { | |||||
again = false; | |||||
cp = strrchr(name, '-'); | cp = strrchr(name, '-'); | ||||
if (cp == NULL) | if (cp == NULL) { | ||||
rep_errx(1, "Invalid name: %s", name); | if (ocp != NULL) | ||||
*ocp = '-'; | |||||
rep_errx(1, "Invalid guid in: %s", name); | |||||
} | |||||
if (ocp != NULL) | |||||
*ocp = '-'; | |||||
*vname = cp + 1; | *vname = cp + 1; | ||||
*cp = '\0'; | *cp = '\0'; | ||||
ocp = cp; | |||||
if (efi_name_to_guid(name, guid) < 0) | if (efi_name_to_guid(name, guid) < 0) | ||||
rep_errx(1, "Invalid guid %s", name); | again = true; | ||||
markj: If you instead write `if (efi_name_to_guid(name, guid) >= 0) break;`, you can get rid of the… | |||||
} | |||||
} | } | ||||
static uint8_t * | static uint8_t * | ||||
get_value(char *val, size_t *datalen) | get_value(char *val, size_t *datalen) | ||||
{ | { | ||||
static char buffer[16*1024]; | static char buffer[16*1024]; | ||||
if (val != NULL) { | if (val != NULL) { | ||||
▲ Show 20 Lines • Show All 282 Lines • Show Last 20 Lines |
If you instead write if (efi_name_to_guid(name, guid) >= 0) break;, you can get rid of the again flag variable.
BTW, efi_name_to_guid(3) is documented as unimplemented. :)