colr: add null check in avifTransferCharacteristicsGetGamma (#2961)
diff --git a/src/colr.c b/src/colr.c
index 71d6691..21a85db 100644
--- a/src/colr.c
+++ b/src/colr.c
@@ -72,18 +72,26 @@
avifResult avifTransferCharacteristicsGetGamma(avifTransferCharacteristics atc, float * gamma)
{
+ if (gamma == NULL) {
+ return AVIF_RESULT_INVALID_ARGUMENT;
+ }
+
switch (atc) {
case AVIF_TRANSFER_CHARACTERISTICS_BT470M:
*gamma = 2.2f;
return AVIF_RESULT_OK;
+
case AVIF_TRANSFER_CHARACTERISTICS_BT470BG:
*gamma = 2.8f;
return AVIF_RESULT_OK;
+
case AVIF_TRANSFER_CHARACTERISTICS_LINEAR:
*gamma = 1.0f;
return AVIF_RESULT_OK;
+
default:
- return AVIF_RESULT_INVALID_ARGUMENT;
+ // Not representable as a single gamma value (e.g. sRGB, BT.709, PQ, HLG, etc.).
+ return AVIF_RESULT_NOT_IMPLEMENTED;
}
}