Fix: Cryptomatte Metadata Trimmed to 1024.

When reading metadata from image files the metadata is trimmed to 1024.
For cryptomatte the metadata can contain json data and should not be
trimmed. Resulting additional checks in the manifest parser for
incomplete json data.

You could argue to add an exception for cryptomatte, but that would
still allows misuse. When the direction of this patch is accepted we
should consider removing `maxlen` from `IDP_AssignString` as it
doesn't seem to be used anywhere else.

Reviewed By: #images_movies, mont29, sergey

Differential Revision: https://developer.blender.org/D10825
This commit is contained in:
Jeroen Bakker 2021-03-29 12:14:59 +02:00 committed by Jeroen Bakker
parent 35cf34de6d
commit 1ea5157051
1 changed files with 2 additions and 3 deletions

View File

@ -38,7 +38,6 @@
#include "IMB_metadata.h"
#define METADATA_MAX_VALUE_LENGTH 1024
void IMB_metadata_ensure(struct IDProperty **metadata)
{
@ -99,11 +98,11 @@ void IMB_metadata_set_field(struct IDProperty *metadata, const char *key, const
}
if (prop == NULL) {
prop = IDP_NewString(value, key, METADATA_MAX_VALUE_LENGTH);
prop = IDP_NewString(value, key, 0);
IDP_AddToGroup(metadata, prop);
}
IDP_AssignString(prop, value, METADATA_MAX_VALUE_LENGTH);
IDP_AssignString(prop, value, 0);
}
void IMB_metadata_foreach(struct ImBuf *ibuf, IMBMetadataForeachCb callback, void *userdata)