summaryrefslogtreecommitdiffstats
path: root/src/4a-internals-hal/4a-internals-hal-value-handler.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/4a-internals-hal/4a-internals-hal-value-handler.c')
-rw-r--r--src/4a-internals-hal/4a-internals-hal-value-handler.c35
1 files changed, 30 insertions, 5 deletions
diff --git a/src/4a-internals-hal/4a-internals-hal-value-handler.c b/src/4a-internals-hal/4a-internals-hal-value-handler.c
index 98e29ab..a8b0e2e 100644
--- a/src/4a-internals-hal/4a-internals-hal-value-handler.c
+++ b/src/4a-internals-hal/4a-internals-hal-value-handler.c
@@ -133,6 +133,10 @@ int InternalHalConvertJsonValueForIntegerControl(afb_api_t apiHandle,
}
*ConvertedJ = json_object_new_int(convertedValue);
+ if(! *ConvertedJ) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate converted value json integer");
+ return -5;
+ }
return 0;
}
@@ -187,6 +191,11 @@ int InternalHalConvertJsonValueForBooleanControl(afb_api_t apiHandle,
return -3;
}
+ if(! *ConvertedJ) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate converted value json");
+ return -4;
+ }
+
return 0;
}
@@ -207,6 +216,10 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
count = (toConvertType == json_type_array) ? (int) json_object_array_length(toConvertJ) : 1;
convertedArrayJ = json_object_new_array();
+ if(! convertedArrayJ) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate converted values json array");
+ return -1;
+ }
for(idx = 0; idx < count; idx++) {
if(toConvertType == json_type_array)
@@ -229,7 +242,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
idx,
json_object_get_string(toConvertObjectJ));
json_object_put(convertedArrayJ);
- return -1;
+ return -2;
}
break;
@@ -246,7 +259,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
idx,
json_object_get_string(toConvertObjectJ));
json_object_put(convertedArrayJ);
- return -2;
+ return -3;
}
break;
@@ -255,7 +268,7 @@ int InternalHalConvertJsonValues(afb_api_t apiHandle,
"Conversion not handle for the alsa control type %i",
(int) alsaCtlProperties->type);
json_object_put(convertedArrayJ);
- return -3;
+ return -4;
}
json_object_array_put_idx(convertedArrayJ, idx, convertedValueJ);
@@ -276,7 +289,7 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
char *requestedPercentageVariationString, *conversionEnd;
- json_object *toChangeObjectJ, *changedArrayJ;
+ json_object *toChangeObjectJ, *changedArrayJ, *changedValueJ;
*ChangedJ = NULL;
@@ -325,6 +338,10 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
count = (int) json_object_array_length(previousControlValuesJ);
changedArrayJ = json_object_new_array();
+ if(! changedArrayJ) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate changed values json array");
+ return -1;
+ }
for(idx = 0; idx < count; idx++) {
toChangeObjectJ = json_object_array_get_idx(previousControlValuesJ, idx);
@@ -335,6 +352,7 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
json_object_get_string(toChangeObjectJ),
idx,
count);
+ json_object_put(changedArrayJ);
return -5;
}
@@ -347,7 +365,14 @@ int InternalHalChangePreviousValuesUsingJson(afb_api_t apiHandle,
else
changedValue = toChangeValue + requestedVariation;
- json_object_array_put_idx(changedArrayJ, idx, json_object_new_int(changedValue));
+ changedValueJ = json_object_new_int(changedValue);
+ if(! changedValueJ) {
+ AFB_API_ERROR(apiHandle, "Didn't succeed to allocate changed value json integer");
+ json_object_put(changedArrayJ);
+ return -6;
+ }
+
+ json_object_array_put_idx(changedArrayJ, idx, changedValueJ);
}
*ChangedJ = changedArrayJ;