From 8dd7dbde66fab944269d3c1b3182174098b68236 Mon Sep 17 00:00:00 2001 From: Youngjae Cho Date: Fri, 18 Jun 2021 12:16:35 +0900 Subject: [PATCH] board: fix parameter of get_deviec_serial_number() Change-Id: Ib7303ad9f8fdac2784e94285149b20ec0286b732 Signed-off-by: Youngjae Cho --- hw/board/board.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/hw/board/board.c b/hw/board/board.c index 5e3b0c8..fe47c2d 100644 --- a/hw/board/board.c +++ b/hw/board/board.c @@ -81,29 +81,21 @@ static int get_serialno_from_cpuinfo(void) return -EIO; } -static int get_device_serial_number(char **out) +static int get_device_serial_number(char *buffer, int len) { int ret; - if (info.serial_len > 0 && strlen(info.serial) == info.serial_len) { - *out = strdup(info.serial); - if (!out) { - _E("Out of memory, strdup failed."); - return -ENOMEM; - } - return 0; - } - ret = get_serialno_from_cpuinfo(); - if (ret < 0) { - _E("Failed to find serial number."); - return ret; + if (info.serial_len == 0) { + ret = get_serialno_from_cpuinfo(); + if (ret < 0) { + _E("Failed to find serial number."); + return ret; + } } - *out = strdup(info.serial); - if (!out) - _E("Out of memory, strdup failed."); + strncpy(buffer, info.serial, len); - return ret; + return 0; } static int board_init(void **data) -- 2.34.1