sbtools: always check the result of getenv against NULL, use strcasecmp instead of strcmp more greater flexibility
Thanks TheLemonMan for spotting that.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@29989 a1c6a512-1295-4272-9138-f99709370657
diff --git a/utils/sbtools/elftosb.c b/utils/sbtools/elftosb.c
index 1b47cb5..3d53fb7 100644
--- a/utils/sbtools/elftosb.c
+++ b/utils/sbtools/elftosb.c
@@ -32,6 +32,7 @@
#include <ctype.h>
#include <time.h>
#include <stdarg.h>
+#include <strings.h>
#include "crypto.h"
#include "elf.h"
@@ -48,6 +49,12 @@
* Misc
*/
+char *s_getenv(const char *name)
+{
+ char *s = getenv(name);
+ return s ? s : "";
+}
+
void generate_random_data(void *buf, size_t sz)
{
static int rand_fd = -1;
@@ -968,7 +975,7 @@
return 1;
}
- if(getenv("SB_DEBUG") != NULL && strcmp(getenv("SB_DEBUG"), "YES") == 0)
+ if(strcasecmp(s_getenv("SB_DEBUG"), "YES") == 0)
g_debug = true;
g_key_array = read_keys(argv[2], &g_nr_keys);
diff --git a/utils/sbtools/sbtoelf.c b/utils/sbtools/sbtoelf.c
index 52d7179..854af28 100644
--- a/utils/sbtools/sbtoelf.c
+++ b/utils/sbtools/sbtoelf.c
@@ -38,6 +38,7 @@
#include <string.h>
#include <ctype.h>
#include <time.h>
+#include <strings.h>
#include "crypto.h"
#include "elf.h"
@@ -76,6 +77,12 @@
char out_prefix[PREFIX_SIZE];
const char *key_file;
+char *s_getenv(const char *name)
+{
+ char *s = getenv(name);
+ return s ? s : "";
+}
+
void *xmalloc(size_t s) /* malloc helper, used in elf.c */
{
void * r = malloc(s);
@@ -338,7 +345,7 @@
if(sb_header->header_size * BLOCK_SIZE != sizeof(struct sb_header_t))
bugp("Bad header size");
if((sb_header->major_ver != IMAGE_MAJOR_VERSION ||
- sb_header->minor_ver != IMAGE_MINOR_VERSION) && strcmp(getenv("SB_IGNORE_VER"), "YES"))
+ sb_header->minor_ver != IMAGE_MINOR_VERSION) && strcasecmp(s_getenv("SB_IGNORE_VER"), "YES"))
bugp("Bad file format version");
if(sb_header->sec_hdr_size * BLOCK_SIZE != sizeof(struct sb_section_header_t))
bugp("Bad section header size");
@@ -497,8 +504,7 @@
}
/* sections */
- char *raw_cmd_env = getenv("SB_RAW_CMD");
- if(raw_cmd_env == NULL || strcmp(raw_cmd_env, "YES") != 0)
+ if(strcasecmp(s_getenv("SB_RAW_CMD"), "YES") != 0)
{
color(BLUE);
printf("Sections\n");