--- trunk/grubby/grubby.c 2013/10/21 13:52:27 2245 +++ trunk/grubby/grubby.c 2013/10/21 13:53:05 2246 @@ -230,11 +230,19 @@ }; static int i = -1; static const char *grub_cfg = "/boot/grub/grub.cfg"; + int rc = -1; if (i == -1) { for (i = 0; configFiles[i] != NULL; i++) { dbgPrintf("Checking \"%s\": ", configFiles[i]); - if (!access(configFiles[i], R_OK)) { + if ((rc = access(configFiles[i], R_OK))) { + if (errno == EACCES) { + printf("Unable to access bootloader configuration file " + "\"%s\": %m\n", configFiles[i]); + exit(1); + } + continue; + } else { dbgPrintf("found\n"); return configFiles[i]; } @@ -958,7 +966,10 @@ int len; char * buf; - if (!strcmp(inName, "-")) { + if (inName == NULL) { + printf("Could not find bootloader configuration\n"); + exit(1); + } else if (!strcmp(inName, "-")) { in = 0; } else { if ((in = open(inName, O_RDONLY)) < 0) { @@ -4188,6 +4199,11 @@ return 0; } + if (grubConfig == NULL) { + printf("Could not find bootloader configuration file.\n"); + exit(1); + } + config = readConfig(grubConfig, cfi); if (!config) return 1;