summaryrefslogtreecommitdiff
path: root/src/libostree/ostree-core.c
diff options
context:
space:
mode:
authorColin Walters <walters@verbum.org>2017-06-22 13:01:50 -0400
committerAtomic Bot <atomic-devel@projectatomic.io>2017-06-23 14:11:36 +0000
commitaafda9073ad581f9b8051d58947bbab9379badcc (patch)
tree7f1eb037bf9c005cdc3b85d50e1af565c345fb42 /src/libostree/ostree-core.c
parent90b587e2c8c5593797b201dc1a63b59cd5fd5022 (diff)
downloadostree-aafda9073ad581f9b8051d58947bbab9379badcc.tar.gz
lib/core: Avoid NULL deref in content_file_parse() if out variable unset
Prep for a change in `ostree_repo_load_file()`. We would crash if a caller had `out_file_info = NULL`, because we deref `ret_file_info` below it. Closes: #951 Approved by: jlebon
Diffstat (limited to 'src/libostree/ostree-core.c')
-rw-r--r--src/libostree/ostree-core.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/src/libostree/ostree-core.c b/src/libostree/ostree-core.c
index abc204e9..32516b7c 100644
--- a/src/libostree/ostree-core.c
+++ b/src/libostree/ostree-core.c
@@ -644,7 +644,7 @@ ostree_content_stream_parse (gboolean compressed,
if (compressed)
{
if (!zlib_file_header_parse (file_header,
- out_file_info ? &ret_file_info : NULL,
+ &ret_file_info,
out_xattrs ? &ret_xattrs : NULL,
error))
return FALSE;
@@ -652,12 +652,11 @@ ostree_content_stream_parse (gboolean compressed,
else
{
if (!file_header_parse (file_header,
- out_file_info ? &ret_file_info : NULL,
+ &ret_file_info,
out_xattrs ? &ret_xattrs : NULL,
error))
return FALSE;
- if (ret_file_info)
- g_file_info_set_size (ret_file_info, input_length - archive_header_size - 8);
+ g_file_info_set_size (ret_file_info, input_length - archive_header_size - 8);
}
g_autoptr(GInputStream) ret_input = NULL;