Branch data Line data Source code
1 : : /* 2 : : Copyright (c) 2021 Fraunhofer AISEC. See the COPYRIGHT 3 : : file at the top-level directory of this distribution. 4 : : 5 : : Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or 6 : : http://www.apache.org/licenses/LICENSE-2.0> or the MIT license 7 : : <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your 8 : : option. This file may not be copied, modified, or distributed 9 : : except according to those terms. 10 : : */ 11 : : 12 : : #include <stdint.h> 13 : : #include <string.h> 14 : : 15 : : #include "common/oscore_edhoc_error.h" 16 : : #include "common/memcpy_s.h" 17 : : 18 : 1195 : enum err check_buffer_size(uint32_t is_size, uint32_t required_size) 19 : : { 20 [ - + ]: 1195 : if (is_size < required_size) { 21 : 0 : return buffer_to_small; 22 : : } else { 23 : 1195 : return ok; 24 : : } 25 : : } 26 : : 27 : 531 : enum err _memcpy_s(uint8_t *dest, uint32_t dest_len, const uint8_t *source, 28 : : uint32_t source_len) 29 : : { 30 [ + + ]: 531 : if (source_len == 0) { 31 : 39 : return ok; 32 : : } 33 [ + - - + ]: 492 : if ((NULL == dest) || (NULL == source)) { 34 : 0 : return wrong_parameter; 35 : : } 36 : : 37 [ - + ]: 492 : TRY(check_buffer_size(dest_len, source_len)); 38 : 492 : memcpy(dest, source, source_len); 39 : 492 : return ok; 40 : : }