diff options
author | Wang Panzhenzhuan <randy.wang@rock-chips.com> | 2019-03-20 17:03:34 +0800 |
---|---|---|
committer | Tao Huang <huangtao@rock-chips.com> | 2019-03-20 18:52:43 +0800 |
commit | d8c65325a2b45395dccddf7bb90dcf73274dcb59 (patch) | |
tree | 26aeaed09a95b2ec4dc7ffb565a69c1f9148ca1f | |
parent | 5b44e6b88e71a7dc620fdb6834c973f8db77fe6f (diff) |
media: i2c: ov8858 fix otp null pointer crash
Change-Id: Ic80e74fa3198a6f877b69d38a225a187dc53769e
Signed-off-by: Wang Panzhenzhuan <randy.wang@rock-chips.com>
-rw-r--r-- | drivers/media/i2c/ov8858.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/drivers/media/i2c/ov8858.c b/drivers/media/i2c/ov8858.c index 730569134ac3..9dcfb2cfaaf2 100644 --- a/drivers/media/i2c/ov8858.c +++ b/drivers/media/i2c/ov8858.c @@ -1764,10 +1764,13 @@ static void ov8858_get_module_inf(struct ov8858 *ov8858, strlcpy(inf->base.module, ov8858->module_name, sizeof(inf->base.module)); strlcpy(inf->base.lens, ov8858->len_name, sizeof(inf->base.lens)); - if (ov8858->is_r2a) - ov8858_get_r2a_otp(otp_r2a, inf); - else - ov8858_get_r1a_otp(otp_r1a, inf); + if (ov8858->is_r2a) { + if (otp_r2a) + ov8858_get_r2a_otp(otp_r2a, inf); + } else { + if (otp_r1a) + ov8858_get_r1a_otp(otp_r1a, inf); + } } static void ov8858_set_module_inf(struct ov8858 *ov8858, @@ -2505,6 +2508,7 @@ static int ov8858_otp_read_r1a(struct ov8858 *ov8858) ov8858->otp_r1a = otp_ptr; } else { ov8858->otp_r1a = NULL; + dev_info(dev, "otp_r1a is null!\n"); kfree(otp_ptr); } @@ -2608,6 +2612,7 @@ static int ov8858_otp_read_r2a(struct ov8858 *ov8858) ov8858->otp_r2a = otp_ptr; } else { ov8858->otp_r2a = NULL; + dev_info(dev, "otp_r2a is null!\n"); kfree(otp_ptr); } |