Updating properties of datasets can corrupt the data
Description
The code to update the properties of a dataset is identical with creating a dataset, with two differences:
it checks that the dataset already exists
it checks that the new type is the same as the old type It does not check whether the embedded datasets are the same as in the existing dataset spec. This is ok as long as dataset code can never be upgraded, but with unchecked dataset upgrade, this is not guaranteed any longer.
The code to update the properties of a dataset is identical with creating a dataset, with two differences:
it checks that the dataset already exists
it checks that the new type is the same as the old type
It does not check whether the embedded datasets are the same as in the existing dataset spec. This is ok as long as dataset code can never be upgraded, but with unchecked dataset upgrade, this is not guaranteed any longer.