提交 a4e8d9f5 编写于 作者: M Mike Frysinger 提交者: Wolfgang Denk

flash_protect: check for NULL flash info

If a flash is unable to be detected, and then someone calls flash_protect
on it (like the common code does in flash_init), the flash_protect logic
will dereference a NULL pointer.

Since flash_protect already does sanity checking on the info structs, add
a NULL pointer check in there.
Signed-off-by: NMike Frysinger <vapier@gentoo.org>
上级 9ed4a958
...@@ -43,15 +43,18 @@ extern flash_info_t flash_info[]; /* info for FLASH chips */ ...@@ -43,15 +43,18 @@ extern flash_info_t flash_info[]; /* info for FLASH chips */
void void
flash_protect (int flag, ulong from, ulong to, flash_info_t *info) flash_protect (int flag, ulong from, ulong to, flash_info_t *info)
{ {
ulong b_end = info->start[0] + info->size - 1; /* bank end address */ ulong b_end;
short s_end = info->sector_count - 1; /* index of last sector */ short s_end;
int i; int i;
/* Do nothing if input data is bad. */ /* Do nothing if input data is bad. */
if (info->sector_count == 0 || info->size == 0 || to < from) { if (!info || info->sector_count == 0 || info->size == 0 || to < from) {
return; return;
} }
s_end = info->sector_count - 1; /* index of last sector */
b_end = info->start[0] + info->size - 1; /* bank end address */
debug ("flash_protect %s: from 0x%08lX to 0x%08lX\n", debug ("flash_protect %s: from 0x%08lX to 0x%08lX\n",
(flag & FLAG_PROTECT_SET) ? "ON" : (flag & FLAG_PROTECT_SET) ? "ON" :
(flag & FLAG_PROTECT_CLEAR) ? "OFF" : "???", (flag & FLAG_PROTECT_CLEAR) ? "OFF" : "???",
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册