From 813b62356eb3323e0c4948e0260260f6a82bec9e Mon Sep 17 00:00:00 2001 From: Michael Zillgith Date: Wed, 30 Jul 2025 07:32:32 +0100 Subject: [PATCH] - code format updated - changed return type of some internal functions from int to bool --- src/mms/asn1/asn1_ber_primitive_value.c | 64 +++++++++++---------- src/mms/asn1/ber_decode.c | 74 +++++++++++++++---------- src/mms/asn1/ber_integer.c | 44 ++++++++------- src/mms/inc_private/ber_integer.h | 14 ++--- 4 files changed, 113 insertions(+), 83 deletions(-) diff --git a/src/mms/asn1/asn1_ber_primitive_value.c b/src/mms/asn1/asn1_ber_primitive_value.c index 55cf626b..5c7ae02f 100644 --- a/src/mms/asn1/asn1_ber_primitive_value.c +++ b/src/mms/asn1/asn1_ber_primitive_value.c @@ -1,7 +1,7 @@ /* * asn1_ber_primitive_value.c * - * Copyright 2013-2022 Michael Zillgith + * Copyright 2013-2025 Michael Zillgith * * This file is part of libIEC61850. * @@ -28,51 +28,56 @@ Asn1PrimitiveValue* Asn1PrimitiveValue_create(int size) { - Asn1PrimitiveValue* self = (Asn1PrimitiveValue*) GLOBAL_MALLOC(sizeof(Asn1PrimitiveValue)); + Asn1PrimitiveValue* self = (Asn1PrimitiveValue*)GLOBAL_MALLOC(sizeof(Asn1PrimitiveValue)); - if (self) { - self->size = 1; - self->maxSize = size; + if (self) + { + self->size = 1; + self->maxSize = size; - self->octets = (uint8_t*) GLOBAL_CALLOC(1, size); + self->octets = (uint8_t*)GLOBAL_CALLOC(1, size); - if (self->octets == NULL) { - GLOBAL_FREEMEM(self); - self = NULL; - } - } + if (self->octets == NULL) + { + GLOBAL_FREEMEM(self); + self = NULL; + } + } - return self; + return self; } Asn1PrimitiveValue* Asn1PrimitiveValue_clone(Asn1PrimitiveValue* self) { - Asn1PrimitiveValue* clone = (Asn1PrimitiveValue*) GLOBAL_MALLOC(sizeof(Asn1PrimitiveValue)); - - if (clone) { - clone->size = self->size; - clone->maxSize = self->maxSize; + Asn1PrimitiveValue* clone = (Asn1PrimitiveValue*)GLOBAL_MALLOC(sizeof(Asn1PrimitiveValue)); - clone->octets = (uint8_t*) GLOBAL_MALLOC(self->maxSize); + if (clone) + { + clone->size = self->size; + clone->maxSize = self->maxSize; - if (clone->octets) { - memcpy(clone->octets, self->octets, clone->maxSize); - } - else { - GLOBAL_FREEMEM(clone); - clone = NULL; - } + clone->octets = (uint8_t*)GLOBAL_MALLOC(self->maxSize); - } + if (clone->octets) + { + memcpy(clone->octets, self->octets, clone->maxSize); + } + else + { + GLOBAL_FREEMEM(clone); + clone = NULL; + } + } - return clone; + return clone; } bool Asn1PrimitivaValue_compare(Asn1PrimitiveValue* self, Asn1PrimitiveValue* otherValue) { - if (self->size == otherValue->size) { + if (self->size == otherValue->size) + { if (memcmp(self->octets, otherValue->octets, self->size) == 0) return true; else @@ -97,7 +102,8 @@ Asn1PrimitiveValue_getMaxSize(Asn1PrimitiveValue* self) void Asn1PrimitiveValue_destroy(Asn1PrimitiveValue* self) { - if (self) { + if (self) + { GLOBAL_FREEMEM(self->octets); GLOBAL_FREEMEM(self); } diff --git a/src/mms/asn1/ber_decode.c b/src/mms/asn1/ber_decode.c index 8a4866a8..8040277b 100644 --- a/src/mms/asn1/ber_decode.c +++ b/src/mms/asn1/ber_decode.c @@ -1,7 +1,7 @@ /* * ber_decoder.c * - * Copyright 2013-2022 Michael Zillgith + * Copyright 2013-2025 Michael Zillgith * * This file is part of libIEC61850. * @@ -37,14 +37,18 @@ getIndefiniteLength(uint8_t* buffer, int bufPos, int maxBufPos, int depth, int m int length = 0; - while (bufPos < maxBufPos) { - if ((buffer[bufPos] == 0) && ((bufPos + 1) < maxBufPos) && (buffer[bufPos+1] == 0)) { + while (bufPos < maxBufPos) + { + if ((buffer[bufPos] == 0) && ((bufPos + 1) < maxBufPos) && (buffer[bufPos + 1] == 0)) + { return length + 2; } - else { + else + { length++; - if ((buffer[bufPos++] & 0x1f) == 0x1f) { + if ((buffer[bufPos++] & 0x1f) == 0x1f) + { /* handle extended tags */ bufPos++; length++; @@ -74,17 +78,21 @@ BerDecoder_decodeLengthRecursive(uint8_t* buffer, int* length, int bufPos, int m uint8_t len1 = buffer[bufPos++]; - if (len1 & 0x80) { + if (len1 & 0x80) + { int lenLength = len1 & 0x7f; - if (lenLength == 0) { /* indefinite length form */ + if (lenLength == 0) + { /* indefinite length form */ *length = getIndefiniteLength(buffer, bufPos, maxBufPos, depth, maxDepth); } - else { + else + { *length = 0; int i; - for (i = 0; i < lenLength; i++) { + for (i = 0; i < lenLength; i++) + { if (bufPos >= maxBufPos) return -1; @@ -95,18 +103,15 @@ BerDecoder_decodeLengthRecursive(uint8_t* buffer, int* length, int bufPos, int m *length += buffer[bufPos++]; } } - } - else { + else + { *length = len1; } if (*length < 0) return -1; - if (*length > maxBufPos) - return -1; - if (bufPos + (*length) > maxBufPos) return -1; @@ -126,8 +131,12 @@ BerDecoder_decodeString(uint8_t* buffer, int strlen, int bufPos, int maxBufPos) return NULL; char* string = (char*) GLOBAL_MALLOC(strlen + 1); - memcpy(string, buffer + bufPos, strlen); - string[strlen] = 0; + + if (string) + { + memcpy(string, buffer + bufPos, strlen); + string[strlen] = 0; + } return string; } @@ -138,7 +147,8 @@ BerDecoder_decodeUint32(uint8_t* buffer, int intLen, int bufPos) uint32_t value = 0; int i; - for (i = 0; i < intLen; i++) { + for (i = 0; i < intLen; i++) + { value <<= 8; value += buffer[bufPos + i]; } @@ -159,7 +169,8 @@ BerDecoder_decodeInt32(uint8_t* buffer, int intlen, int bufPos) else value = 0; - for (i = 0; i < intlen; i++) { + for (i = 0; i < intlen; i++) + { value <<= 8; value += buffer[bufPos + i]; } @@ -171,18 +182,20 @@ float BerDecoder_decodeFloat(uint8_t* buffer, int bufPos) { float value; - uint8_t* valueBuf = (uint8_t*) &value; + uint8_t* valueBuf = (uint8_t*)&value; int i; bufPos += 1; /* skip exponentWidth field */ #if (ORDER_LITTLE_ENDIAN == 1) - for (i = 3; i >= 0; i--) { + for (i = 3; i >= 0; i--) + { valueBuf[i] = buffer[bufPos++]; } #else - for (i = 0; i < 4; i++) { + for (i = 0; i < 4; i++) + { valueBuf[i] = buffer[bufPos++]; } #endif @@ -194,18 +207,20 @@ double BerDecoder_decodeDouble(uint8_t* buffer, int bufPos) { double value; - uint8_t* valueBuf = (uint8_t*) &value; + uint8_t* valueBuf = (uint8_t*)&value; int i; bufPos += 1; /* skip exponentWidth field */ #if (ORDER_LITTLE_ENDIAN == 1) - for (i = 7; i >= 0; i--) { + for (i = 7; i >= 0; i--) + { valueBuf[i] = buffer[bufPos++]; } #else - for (i = 0; i < 8; i++) { + for (i = 0; i < 8; i++) + { valueBuf[i] = buffer[bufPos++]; } #endif @@ -214,7 +229,8 @@ BerDecoder_decodeDouble(uint8_t* buffer, int bufPos) } bool -BerDecoder_decodeBoolean(uint8_t* buffer, int bufPos) { +BerDecoder_decodeBoolean(uint8_t* buffer, int bufPos) +{ if (buffer[bufPos] != 0) return true; else @@ -233,7 +249,8 @@ BerDecoder_decodeOID(uint8_t* buffer, int bufPos, int length, ItuObjectIdentifie oid->arc[i] = 0; /* parse first two arcs */ - if (length > 0) { + if (length > 0) + { oid->arc[0] = buffer[bufPos] / 40; oid->arc[1] = buffer[bufPos] % 40; @@ -242,8 +259,9 @@ BerDecoder_decodeOID(uint8_t* buffer, int bufPos, int length, ItuObjectIdentifie } /* parse remaining arcs */ - while ((bufPos - startPos < length) && (currentArc < 10)) { - oid->arc[currentArc] = oid->arc[currentArc]<<7; + while ((bufPos - startPos < length) && (currentArc < 10)) + { + oid->arc[currentArc] = oid->arc[currentArc] << 7; if (buffer[bufPos] < 0x80) oid->arc[currentArc++] += buffer[bufPos]; diff --git a/src/mms/asn1/ber_integer.c b/src/mms/asn1/ber_integer.c index 01281e3f..26c6dae5 100644 --- a/src/mms/asn1/ber_integer.c +++ b/src/mms/asn1/ber_integer.c @@ -1,7 +1,7 @@ /* * ber_integer.c * - * Copyright 2013-2022 Michael Zillgith + * Copyright 2013-2025 Michael Zillgith * * This file is part of libIEC61850. * @@ -25,7 +25,7 @@ #include "ber_integer.h" #include "ber_encoder.h" -static int +static bool setIntegerValue(Asn1PrimitiveValue* self, uint8_t* valueBuffer, int bufferSize) { #if (ORDER_LITTLE_ENDIAN == 1) @@ -34,13 +34,15 @@ setIntegerValue(Asn1PrimitiveValue* self, uint8_t* valueBuffer, int bufferSize) int size = BerEncoder_compressInteger(valueBuffer, bufferSize); - if (size <= self->maxSize) { + if (size <= self->maxSize) + { self->size = size; memcpy(self->octets, valueBuffer, size); - return 1; + + return true; } else - return 0; + return false; } Asn1PrimitiveValue* @@ -61,7 +63,8 @@ BerInteger_createFromBuffer(uint8_t* buf, int size) Asn1PrimitiveValue* self = Asn1PrimitiveValue_create(maxSize); - if (self) { + if (self) + { memcpy(self->octets, buf, size); self->size = size; @@ -70,21 +73,22 @@ BerInteger_createFromBuffer(uint8_t* buf, int size) return self; } -int +bool BerInteger_setFromBerInteger(Asn1PrimitiveValue* self, Asn1PrimitiveValue* value) { - if (self->maxSize >= value->size) { + if (self->maxSize >= value->size) + { self->size = value->size; memcpy(self->octets, value->octets, value->size); - return 1; + return true; } else - return 0; + return false; } -int +bool BerInteger_setInt32(Asn1PrimitiveValue* self, int32_t value) { int32_t valueCopy = value; @@ -98,14 +102,15 @@ BerInteger_createFromInt32(int32_t value) { Asn1PrimitiveValue* asn1Value = BerInteger_createInt32(); - if (asn1Value) { + if (asn1Value) + { BerInteger_setInt32(asn1Value, value); } return asn1Value; } -int +bool BerInteger_setUint16(Asn1PrimitiveValue* self, uint16_t value) { uint16_t valueCopy = value; @@ -130,7 +135,7 @@ BerInteger_setUint16(Asn1PrimitiveValue* self, uint16_t value) return setIntegerValue(self, byteBuffer, sizeof(byteBuffer)); } -int +bool BerInteger_setUint8(Asn1PrimitiveValue* self, uint8_t value) { uint8_t valueCopy = value; @@ -139,7 +144,7 @@ BerInteger_setUint8(Asn1PrimitiveValue* self, uint8_t value) return setIntegerValue(self, valueBuffer, sizeof(value)); } -int +bool BerInteger_setUint32(Asn1PrimitiveValue* self, uint32_t value) { uint32_t valueCopy = value; @@ -169,7 +174,8 @@ BerInteger_createFromUint32(uint32_t value) { Asn1PrimitiveValue* asn1Value = BerInteger_createInt32(); - if (asn1Value) { + if (asn1Value) + { BerInteger_setUint32(asn1Value, value); } @@ -182,7 +188,7 @@ BerInteger_createInt64() return Asn1PrimitiveValue_create(9); } -int +bool BerInteger_setInt64(Asn1PrimitiveValue* self, int64_t value) { int64_t valueCopy = value; @@ -196,7 +202,8 @@ BerInteger_createFromInt64(int64_t value) { Asn1PrimitiveValue* asn1Value = BerInteger_createInt64(); - if (asn1Value) { + if (asn1Value) + { BerInteger_setInt64(asn1Value, value); } @@ -244,4 +251,3 @@ BerInteger_toInt64(Asn1PrimitiveValue* self, int64_t* nativeValue) for (i = 0; i < self->size; i++) *nativeValue = (*nativeValue << 8) | buf[i]; } - diff --git a/src/mms/inc_private/ber_integer.h b/src/mms/inc_private/ber_integer.h index 054ad729..7e3ac495 100644 --- a/src/mms/inc_private/ber_integer.h +++ b/src/mms/inc_private/ber_integer.h @@ -1,7 +1,7 @@ /* * ber_integer.h * - * Copyright 2013-2018 Michael Zillgith + * Copyright 2013-2025 Michael Zillgith * * This file is part of libIEC61850. * @@ -36,22 +36,22 @@ BerInteger_createFromBuffer(uint8_t* buf, int size); LIB61850_INTERNAL Asn1PrimitiveValue* BerInteger_createInt32(void); -LIB61850_INTERNAL int +LIB61850_INTERNAL bool BerInteger_setFromBerInteger(Asn1PrimitiveValue* self, Asn1PrimitiveValue* value); -LIB61850_INTERNAL int +LIB61850_INTERNAL bool BerInteger_setInt32(Asn1PrimitiveValue* self, int32_t value); LIB61850_INTERNAL Asn1PrimitiveValue* BerInteger_createFromInt32(int32_t value); -LIB61850_INTERNAL int +LIB61850_INTERNAL bool BerInteger_setUint8(Asn1PrimitiveValue* self, uint8_t value); -LIB61850_INTERNAL int +LIB61850_INTERNAL bool BerInteger_setUint16(Asn1PrimitiveValue* self, uint16_t value); -LIB61850_INTERNAL int +LIB61850_INTERNAL bool BerInteger_setUint32(Asn1PrimitiveValue* self, uint32_t value); LIB61850_INTERNAL Asn1PrimitiveValue* @@ -63,7 +63,7 @@ BerInteger_createFromInt64(int64_t value); LIB61850_INTERNAL Asn1PrimitiveValue* BerInteger_createInt64(void); -LIB61850_INTERNAL int +LIB61850_INTERNAL bool BerInteger_setInt64(Asn1PrimitiveValue* self, int64_t value); LIB61850_INTERNAL void