Message ID | 20200316204855.15611-1-natechancellor@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | e69b3bede1b2f754a7d04383cbbc5a8b7327af79 |
Headers | show |
Series | soc: qcom: pdr: Avoid uninitialized use of found in pdr_indication_cb | expand |
On Mon, Mar 16, 2020 at 1:49 PM Nathan Chancellor <natechancellor@gmail.com> wrote: > > Clang warns: > > ../drivers/soc/qcom/pdr_interface.c:316:2: warning: variable 'found' is > used uninitialized whenever 'for' loop exits because its condition is > false [-Wsometimes-uninitialized] > list_for_each_entry(pds, &pdr->lookups, node) { > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../include/linux/list.h:624:7: note: expanded from macro > 'list_for_each_entry' > &pos->member != (head); > ^~~~~~~~~~~~~~~~~~~~~~ > ../drivers/soc/qcom/pdr_interface.c:325:7: note: uninitialized use > occurs here > if (!found) > ^~~~~ > ../drivers/soc/qcom/pdr_interface.c:316:2: note: remove the condition if > it is always true > list_for_each_entry(pds, &pdr->lookups, node) { > ^ > ../include/linux/list.h:624:7: note: expanded from macro > 'list_for_each_entry' > &pos->member != (head); > ^ > ../drivers/soc/qcom/pdr_interface.c:309:12: note: initialize the > variable 'found' to silence this warning > bool found; > ^ > = 0 > 1 warning generated. > > Initialize found to false to fix this warning. > > Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers") > Link: https://github.com/ClangBuiltLinux/linux/issues/933 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Yep, thanks for the patch! Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> > --- > drivers/soc/qcom/pdr_interface.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c > index 7ee088b9cc7c..17ad3b8698e1 100644 > --- a/drivers/soc/qcom/pdr_interface.c > +++ b/drivers/soc/qcom/pdr_interface.c > @@ -306,7 +306,7 @@ static void pdr_indication_cb(struct qmi_handle *qmi, > const struct servreg_state_updated_ind *ind_msg = data; > struct pdr_list_node *ind; > struct pdr_service *pds; > - bool found; > + bool found = false; > > if (!ind_msg || !ind_msg->service_path[0] || > strlen(ind_msg->service_path) > SERVREG_NAME_LENGTH) > -- > 2.26.0.rc1 > > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@googlegroups.com. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/20200316204855.15611-1-natechancellor%40gmail.com.
On Mon 16 Mar 13:48 PDT 2020, Nathan Chancellor wrote: > Clang warns: > > ../drivers/soc/qcom/pdr_interface.c:316:2: warning: variable 'found' is > used uninitialized whenever 'for' loop exits because its condition is > false [-Wsometimes-uninitialized] > list_for_each_entry(pds, &pdr->lookups, node) { > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > ../include/linux/list.h:624:7: note: expanded from macro > 'list_for_each_entry' > &pos->member != (head); > ^~~~~~~~~~~~~~~~~~~~~~ > ../drivers/soc/qcom/pdr_interface.c:325:7: note: uninitialized use > occurs here > if (!found) > ^~~~~ > ../drivers/soc/qcom/pdr_interface.c:316:2: note: remove the condition if > it is always true > list_for_each_entry(pds, &pdr->lookups, node) { > ^ > ../include/linux/list.h:624:7: note: expanded from macro > 'list_for_each_entry' > &pos->member != (head); > ^ > ../drivers/soc/qcom/pdr_interface.c:309:12: note: initialize the > variable 'found' to silence this warning > bool found; > ^ > = 0 > 1 warning generated. > > Initialize found to false to fix this warning. > > Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers") > Link: https://github.com/ClangBuiltLinux/linux/issues/933 > Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> Thanks Nathan, applied with Nick's ack. Regards, Bjorn > --- > drivers/soc/qcom/pdr_interface.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c > index 7ee088b9cc7c..17ad3b8698e1 100644 > --- a/drivers/soc/qcom/pdr_interface.c > +++ b/drivers/soc/qcom/pdr_interface.c > @@ -306,7 +306,7 @@ static void pdr_indication_cb(struct qmi_handle *qmi, > const struct servreg_state_updated_ind *ind_msg = data; > struct pdr_list_node *ind; > struct pdr_service *pds; > - bool found; > + bool found = false; > > if (!ind_msg || !ind_msg->service_path[0] || > strlen(ind_msg->service_path) > SERVREG_NAME_LENGTH) > -- > 2.26.0.rc1 >
diff --git a/drivers/soc/qcom/pdr_interface.c b/drivers/soc/qcom/pdr_interface.c index 7ee088b9cc7c..17ad3b8698e1 100644 --- a/drivers/soc/qcom/pdr_interface.c +++ b/drivers/soc/qcom/pdr_interface.c @@ -306,7 +306,7 @@ static void pdr_indication_cb(struct qmi_handle *qmi, const struct servreg_state_updated_ind *ind_msg = data; struct pdr_list_node *ind; struct pdr_service *pds; - bool found; + bool found = false; if (!ind_msg || !ind_msg->service_path[0] || strlen(ind_msg->service_path) > SERVREG_NAME_LENGTH)
Clang warns: ../drivers/soc/qcom/pdr_interface.c:316:2: warning: variable 'found' is used uninitialized whenever 'for' loop exits because its condition is false [-Wsometimes-uninitialized] list_for_each_entry(pds, &pdr->lookups, node) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../include/linux/list.h:624:7: note: expanded from macro 'list_for_each_entry' &pos->member != (head); ^~~~~~~~~~~~~~~~~~~~~~ ../drivers/soc/qcom/pdr_interface.c:325:7: note: uninitialized use occurs here if (!found) ^~~~~ ../drivers/soc/qcom/pdr_interface.c:316:2: note: remove the condition if it is always true list_for_each_entry(pds, &pdr->lookups, node) { ^ ../include/linux/list.h:624:7: note: expanded from macro 'list_for_each_entry' &pos->member != (head); ^ ../drivers/soc/qcom/pdr_interface.c:309:12: note: initialize the variable 'found' to silence this warning bool found; ^ = 0 1 warning generated. Initialize found to false to fix this warning. Fixes: fbe639b44a82 ("soc: qcom: Introduce Protection Domain Restart helpers") Link: https://github.com/ClangBuiltLinux/linux/issues/933 Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> --- drivers/soc/qcom/pdr_interface.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)