summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWang Panzhenzhuan <randy.wang@rock-chips.com>2019-03-20 17:03:34 +0800
committerTao Huang <huangtao@rock-chips.com>2019-03-20 18:52:43 +0800
commitd8c65325a2b45395dccddf7bb90dcf73274dcb59 (patch)
tree26aeaed09a95b2ec4dc7ffb565a69c1f9148ca1f
parent5b44e6b88e71a7dc620fdb6834c973f8db77fe6f (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.c13
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);
}