[babeltrace] fs.c: initialize the other_entry variable
diff mbox series

Message ID 1583933970-68840-1-git-send-email-mingli.yu@windriver.com
State Superseded, archived
Headers show
Series
  • [babeltrace] fs.c: initialize the other_entry variable
Related show

Commit Message

Yu, Mingli March 11, 2020, 1:39 p.m. UTC
From: Mingli Yu <mingli.yu at windriver.com>

Initialize the pointer other_entry to fix the below error:
| ../../../../../git/src/plugins/ctf/fs-src/fs.c: In function 'ds_index_insert_ds_index_entry_sorted':
| ../../../../../git/src/plugins/ctf/fs-src/fs.c:702:5: error: 'other_entry' may be used uninitialized in this function [-Werror=maybe-uninitialized]
|  702 |    !ds_index_entries_equal(entry, other_entry)) {

Signed-off-by: Mingli Yu <mingli.yu at windriver.com>
---
 src/plugins/ctf/fs-src/fs.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Simon Marchi March 11, 2020, 1:52 p.m. UTC | #1
On 2020-03-11 9:39 a.m., mingli.yu at windriver.com wrote:
> From: Mingli Yu <mingli.yu at windriver.com>
> 
> Initialize the pointer other_entry to fix the below error:
> | ../../../../../git/src/plugins/ctf/fs-src/fs.c: In function 'ds_index_insert_ds_index_entry_sorted':
> | ../../../../../git/src/plugins/ctf/fs-src/fs.c:702:5: error: 'other_entry' may be used uninitialized in this function [-Werror=maybe-uninitialized]
> |  702 |    !ds_index_entries_equal(entry, other_entry)) {
> 
> Signed-off-by: Mingli Yu <mingli.yu at windriver.com>

Hi Mingli,

Thanks for the patch.  Could you please mention the compiler you are using
(which architecture and which version), as well as the full command line
used to compile that file (shown with "make V=1"?

Thank you,

Simon
Mathieu Desnoyers March 11, 2020, 1:58 p.m. UTC | #2
----- On Mar 11, 2020, at 9:39 AM, mingli yu mingli.yu at windriver.com wrote:

> From: Mingli Yu <mingli.yu at windriver.com>
> 
> Initialize the pointer other_entry to fix the below error:
>| ../../../../../git/src/plugins/ctf/fs-src/fs.c: In function
>| 'ds_index_insert_ds_index_entry_sorted':
>| ../../../../../git/src/plugins/ctf/fs-src/fs.c:702:5: error: 'other_entry' may
>| be used uninitialized in this function [-Werror=maybe-uninitialized]
>|  702 |    !ds_index_entries_equal(entry, other_entry)) {

It would be good that the commit message documents that the purpose of this
change is only to silence compiler warnings (which is indeed a good thing to
do).

It does not seem to ever be possible to reach a situation where the
uninitialized value is used, because the only case which can leave
this variable uninitialized is if index->entries->len == 0, which means
the "if (i == index->entries->len ||" will be taken (true), which will
therefore skip the second sub-expression of the if:
"!ds_index_entries_equal(entry, other_entry)", which is the only place
where "other_entry" is read.

Thanks,

Mathieu

> 
> Signed-off-by: Mingli Yu <mingli.yu at windriver.com>
> ---
> src/plugins/ctf/fs-src/fs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/plugins/ctf/fs-src/fs.c b/src/plugins/ctf/fs-src/fs.c
> index e87523a..a6b5315 100644
> --- a/src/plugins/ctf/fs-src/fs.c
> +++ b/src/plugins/ctf/fs-src/fs.c
> @@ -680,7 +680,7 @@ void ds_index_insert_ds_index_entry_sorted(
> 	struct ctf_fs_ds_index_entry *entry)
> {
> 	guint i;
> -	struct ctf_fs_ds_index_entry *other_entry;
> +	struct ctf_fs_ds_index_entry *other_entry = NULL;
> 
> 	/* Find the spot where to insert this index entry. */
> 	for (i = 0; i < index->entries->len; i++) {
> --
> 2.7.4
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
Yu, Mingli March 12, 2020, 3:37 a.m. UTC | #3
Hi Simon,

The compiler: GCC 9.2.0
The error can occur when additionally add " -Og".

Thanks,
Mingli

Patch
diff mbox series

diff --git a/src/plugins/ctf/fs-src/fs.c b/src/plugins/ctf/fs-src/fs.c
index e87523a..a6b5315 100644
--- a/src/plugins/ctf/fs-src/fs.c
+++ b/src/plugins/ctf/fs-src/fs.c
@@ -680,7 +680,7 @@  void ds_index_insert_ds_index_entry_sorted(
 	struct ctf_fs_ds_index_entry *entry)
 {
 	guint i;
-	struct ctf_fs_ds_index_entry *other_entry;
+	struct ctf_fs_ds_index_entry *other_entry = NULL;
 
 	/* Find the spot where to insert this index entry. */
 	for (i = 0; i < index->entries->len; i++) {