diff --git a/src/mms/iso_mms/client/mms_client_connection.c b/src/mms/iso_mms/client/mms_client_connection.c index 48375575..1540d118 100644 --- a/src/mms/iso_mms/client/mms_client_connection.c +++ b/src/mms/iso_mms/client/mms_client_connection.c @@ -1592,9 +1592,13 @@ MmsConnection_readVariable(MmsConnection self, MmsError* mmsError, ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { value = mmsClient_parseReadResponse(self->lastResponse, NULL, false); + if (value == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1620,9 +1624,13 @@ MmsConnection_readVariableComponent(MmsConnection self, MmsError* mmsError, ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { value = mmsClient_parseReadResponse(self->lastResponse, NULL, false); + if (value == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1650,9 +1658,13 @@ MmsConnection_readArrayElements(MmsConnection self, MmsError* mmsError, ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { value = mmsClient_parseReadResponse(self->lastResponse, NULL, false); + if (value == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1679,9 +1691,13 @@ MmsConnection_readSingleArrayElementWithComponent(MmsConnection self, MmsError* ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { value = mmsClient_parseReadResponse(self->lastResponse, NULL, false); + if (value == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1707,9 +1723,13 @@ MmsConnection_readMultipleVariables(MmsConnection self, MmsError* mmsError, ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { value = mmsClient_parseReadResponse(self->lastResponse, NULL, true); + if (value == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1772,9 +1792,13 @@ MmsConnection_readNamedVariableListValuesAssociationSpecific( ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { value = mmsClient_parseReadResponse(self->lastResponse, NULL, true); + if (value == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1801,10 +1825,14 @@ MmsConnection_readNamedVariableListDirectory(MmsConnection self, MmsError* mmsEr ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { attributes = mmsClient_parseGetNamedVariableListAttributesResponse(self->lastResponse, NULL, deletable); + if (attributes == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: @@ -1831,10 +1859,14 @@ MmsConnection_readNamedVariableListDirectoryAssociationSpecific(MmsConnection se ByteBuffer* responseMessage = sendRequestAndWaitForResponse(self, invokeId, payload, mmsError); - if (responseMessage != NULL) + if (responseMessage != NULL) { attributes = mmsClient_parseGetNamedVariableListAttributesResponse(self->lastResponse, NULL, deletable); + if (attributes == NULL) + *mmsError = MMS_ERROR_PARSING_RESPONSE; + } + releaseResponse(self); exit_function: