Members need to be set to NULL or malloc+memset() or calloc() should be used.
52/* Create a file object for parsing a config file */ 53int ini_config_file_open(const char *filename, 54 int error_level, 55 uint32_t collision_flags, 56 uint32_t metadata_flags, 57 struct ini_cfgfile **file_ctx) 58{ 59 int error = EOK; Declaring variable "new_ctx". 60 struct ini_cfgfile *new_ctx = NULL; 61 62 TRACE_FLOW_ENTRY(); 63 At conditional (1): "!filename" taking the false branch. At conditional (2): "!file_ctx" taking the false branch. 64 if ((!filename) || (!file_ctx)) { 65 TRACE_ERROR_NUMBER("Invalid parameter.", EINVAL); 66 return EINVAL; 67 } 68 69 /* Allocate structure */ 70 errno = 0; Assigning: "new_ctx" = "malloc(sizeof (struct ini_cfgfile) /*56*/)", which is allocated but not initialized. 71 new_ctx = malloc(sizeof(struct ini_cfgfile)); At conditional (3): "!new_ctx" taking the false branch. 72 if (!new_ctx) { 73 error = errno; 74 TRACE_ERROR_NUMBER("Failed to allocate file ctx.", error); 75 return error; 76 } 77 78 /* Construct the full file path */ 79 errno = 0; 80 new_ctx->filename = malloc(PATH_MAX + 1); At conditional (4): "!new_ctx->filename" taking the true branch. 81 if (!(new_ctx->filename)) { 82 error = errno; Using uninitialized value "new_ctx->error_list" when calling "ini_config_file_close". [show details] Using uninitialized value "new_ctx->file" when calling "ini_config_file_close". [show details] Using uninitialized value "new_ctx->metadata" when calling "ini_config_file_close". [show details] 83 ini_config_file_close(new_ctx); 84 TRACE_ERROR_NUMBER("Failed to allocate memory for file path.", error); 85 return error; 86 } 87 88 /* Construct path */ 89 error = make_normalized_absolute_path(new_ctx->filename, 90 PATH_MAX, 91 filename); 92 if(error) { 93 TRACE_ERROR_NUMBER("Failed to resolve path", error); Using uninitialized value "new_ctx->file" when calling "ini_config_file_close". [show details] Using uninitialized value "new_ctx->error_list" when calling "ini_config_file_close". [show details] Using uninitialized value "new_ctx->metadata" when calling "ini_config_file_close". [show details] 94 ini_config_file_close(new_ctx); 95 return error; 96 }
Fields changed
summary: Uninitilized varibles in the file context structure => Uninitilized variables in the file context structure
coverity: => 10049 keywords: => Coverity
rhbz: => 0
Based on the code inspection of the function ini_config_file_open() the issue should not exist any more in the current code. All the parts of the structure are properly initialized.
blockedby: => blocking: => feature_milestone: => milestone: Tools Backlog => Tools 1.0 patch: => 0 resolution: => fixed status: new => closed
Metadata Update from @dpal: - Issue set to the milestone: Tools 1.0