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
This commit is contained in:
Amaury Pouly 2011-06-09 09:39:21 +00:00
parent 2d2246ed7d
commit 4cfb5da35b
2 changed files with 17 additions and 4 deletions

View file

@ -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 @@ bool g_debug = false;
* 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 @@ int main(int argc, const char **argv)
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);

View file

@ -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 @@ uint8_t *g_buf; /* file content */
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 @@ static void extract(unsigned long filesize)
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 @@ static void extract(unsigned long filesize)
}
/* 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");