Blame SOURCES/fstrm-0.6.1-Fix-CLANG_WARNING.patch

b81b3d
From abefc739f769a8c9bd89db78b9a3e9dd9e366064 Mon Sep 17 00:00:00 2001
b81b3d
From: =?UTF-8?q?Petr=20Men=C5=A1=C3=ADk?= <pemensik@redhat.com>
b81b3d
Date: Mon, 11 Jan 2021 12:25:27 +0100
b81b3d
Subject: [PATCH] Fix CLANG_WARNING
b81b3d
b81b3d
libmy/argv.c:1352:7: warning[core.uninitialized.Assign]: The expression is an uninitialized value. The computed value will also be garbage
b81b3d
      (*(int *)var)++;
b81b3d
      ^~~~~~~~~~~~~
b81b3d
libmy/argv.c:1207:29: note: Assuming field 'at_value' is not equal to 0
b81b3d
  for (type_p = argv_types; type_p->at_value != 0; type_p++) {
b81b3d
                            ^~~~~~~~~~~~~~~~~~~~~
b81b3d
libmy/argv.c:1207:3: note: Loop condition is true.  Entering loop body
b81b3d
  for (type_p = argv_types; type_p->at_value != 0; type_p++) {
b81b3d
  ^
b81b3d
libmy/argv.c:1208:9: note: Assuming 'val_type' is equal to field 'at_value'
b81b3d
    if (type_p->at_value == val_type) {
b81b3d
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
b81b3d
libmy/argv.c:1208:5: note: Taking true branch
b81b3d
    if (type_p->at_value == val_type) {
b81b3d
    ^
b81b3d
libmy/argv.c:1210:7: note:  Execution continues on line 1214
b81b3d
      break;
b81b3d
      ^
b81b3d
libmy/argv.c:1214:15: note: Field 'at_value' is not equal to 0
b81b3d
  if (type_p->at_value == 0) {
b81b3d
              ^
b81b3d
libmy/argv.c:1214:3: note: Taking false branch
b81b3d
  if (type_p->at_value == 0) {
b81b3d
  ^
b81b3d
libmy/argv.c:1222:7: note: Assuming the condition is true
b81b3d
  if (type & ARGV_FLAG_ARRAY) {
b81b3d
      ^~~~~~~~~~~~~~~~~~~~~~
b81b3d
libmy/argv.c:1222:3: note: Taking true branch
b81b3d
  if (type & ARGV_FLAG_ARRAY) {
b81b3d
  ^
b81b3d
libmy/argv.c:1225:9: note: Assuming field 'aa_entry_n' is equal to 0
b81b3d
    if (arr_p->aa_entry_n == 0) {
b81b3d
        ^~~~~~~~~~~~~~~~~~~~~~
b81b3d
libmy/argv.c:1225:5: note: Taking true branch
b81b3d
    if (arr_p->aa_entry_n == 0) {
b81b3d
    ^
b81b3d
libmy/argv.c:1226:35: note: Storing uninitialized value
b81b3d
      arr_p->aa_entries = (char *)malloc(ARRAY_INCR *size);
b81b3d
                                  ^~~~~~~~~~~~~~~~~~~~~~~~
b81b3d
libmy/argv.c:1234:9: note: Assuming field 'aa_entries' is not equal to NULL
b81b3d
    if (arr_p->aa_entries == NULL) {
b81b3d
        ^~~~~~~~~~~~~~~~~~~~~~~~~
b81b3d
libmy/argv.c:1234:5: note: Taking false branch
b81b3d
    if (arr_p->aa_entries == NULL) {
b81b3d
    ^
b81b3d
libmy/argv.c:1251:3: note: Control jumps to 'case 17:'  at line 1349
b81b3d
  switch (val_type) {
b81b3d
  ^
b81b3d
libmy/argv.c:1351:9: note: Assuming 'arg' is equal to NULL
b81b3d
    if (arg == NULL) {
b81b3d
        ^~~~~~~~~~~
b81b3d
libmy/argv.c:1351:5: note: Taking true branch
b81b3d
    if (arg == NULL) {
b81b3d
    ^
b81b3d
libmy/argv.c:1352:7: note: The expression is an uninitialized value. The computed value will also be garbage
b81b3d
      (*(int *)var)++;
b81b3d
      ^~~~~~~~~~~~~
b81b3d
---
b81b3d
 libmy/argv.c | 5 ++++-
b81b3d
 1 file changed, 4 insertions(+), 1 deletion(-)
b81b3d
b81b3d
diff --git a/libmy/argv.c b/libmy/argv.c
b81b3d
index 0b28026..547065c 100644
b81b3d
--- a/libmy/argv.c
b81b3d
+++ b/libmy/argv.c
b81b3d
@@ -1223,12 +1223,15 @@ static	int	string_to_value(const char *arg, ARGV_PNT var,
b81b3d
     arr_p = (argv_array_t *)var;
b81b3d
     
b81b3d
     if (arr_p->aa_entry_n == 0) {
b81b3d
-      arr_p->aa_entries = (char *)malloc(ARRAY_INCR *size);
b81b3d
+      arr_p->aa_entries = (char *)calloc(ARRAY_INCR, size);
b81b3d
     }
b81b3d
     else if (arr_p->aa_entry_n % ARRAY_INCR == 0) {
b81b3d
       arr_p->aa_entries =
b81b3d
 	(char *)realloc(arr_p->aa_entries, (arr_p->aa_entry_n + ARRAY_INCR) *
b81b3d
 			size);
b81b3d
+      if (arr_p->aa_entries != NULL)
b81b3d
+	memset((char *)(arr_p->aa_entries) + arr_p->aa_entry_n * size, 0,
b81b3d
+	       ARRAY_INCR*size);
b81b3d
     }
b81b3d
     
b81b3d
     if (arr_p->aa_entries == NULL) {
b81b3d
-- 
b81b3d
2.26.3
b81b3d