mirror of
https://github.com/ostreedev/ostree.git
synced 2025-01-11 09:18:20 +03:00
lib/pull: Check whether summary is in normal form when loading it
Check that it’s in normal form and has the correct type when loading it, since it could come from an untrusted source. Signed-off-by: Philip Withnall <withnall@endlessm.com> Closes: #961 Approved by: cgwalters
This commit is contained in:
parent
eb4887d619
commit
4c238c350d
@ -3362,6 +3362,20 @@ ostree_repo_pull_with_options (OstreeRepo *self,
|
||||
pull_data->summary_data = g_bytes_ref (bytes_summary);
|
||||
pull_data->summary = g_variant_new_from_bytes (OSTREE_SUMMARY_GVARIANT_FORMAT, bytes_summary, FALSE);
|
||||
|
||||
if (!g_variant_is_normal_form (pull_data->summary))
|
||||
{
|
||||
g_set_error_literal (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
||||
"Not normal form");
|
||||
goto out;
|
||||
}
|
||||
if (!g_variant_is_of_type (pull_data->summary, OSTREE_SUMMARY_GVARIANT_FORMAT))
|
||||
{
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_FAILED,
|
||||
"Doesn't match variant type '%s'",
|
||||
(char *)OSTREE_SUMMARY_GVARIANT_FORMAT);
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (bytes_sig)
|
||||
pull_data->summary_data_sig = g_bytes_ref (bytes_sig);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user