mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-06-24 06:29:19 +00:00
Remove ASSERT in lib functions
Replace ASSERT in lib functions with error message print and return a value indicating error to allow the caller of lib functions to handle the error. Change-Id: If166484238dc0734041adfdbb19a5b374c044e33 Signed-off-by: Yan, Like <like.yan@intel.com>
This commit is contained in:
parent
cc2256d3f6
commit
7e4b4c2546
@ -266,7 +266,8 @@ void *malloc(unsigned int num_bytes)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Check if memory allocation is successful */
|
/* Check if memory allocation is successful */
|
||||||
ASSERT(memory != NULL, "");
|
if (memory == NULL)
|
||||||
|
pr_err("%s: failed to alloc 0x%x Bytes", __func__, num_bytes);
|
||||||
|
|
||||||
/* Return memory pointer to caller */
|
/* Return memory pointer to caller */
|
||||||
return memory;
|
return memory;
|
||||||
@ -280,7 +281,8 @@ void *alloc_pages(unsigned int page_num)
|
|||||||
memory = allocate_mem(&Paging_Memory_Pool, page_num * CPU_PAGE_SIZE);
|
memory = allocate_mem(&Paging_Memory_Pool, page_num * CPU_PAGE_SIZE);
|
||||||
|
|
||||||
/* Check if memory allocation is successful */
|
/* Check if memory allocation is successful */
|
||||||
ASSERT(memory != NULL, "");
|
if (memory == NULL)
|
||||||
|
pr_err("%s: failed to alloc %d pages", __func__, page_num);
|
||||||
|
|
||||||
return memory;
|
return memory;
|
||||||
}
|
}
|
||||||
|
@ -54,7 +54,8 @@
|
|||||||
*
|
*
|
||||||
* OUTPUTS
|
* OUTPUTS
|
||||||
*
|
*
|
||||||
* void * pointer to destination address
|
* void * pointer to destination address if successful,
|
||||||
|
* or else return null.
|
||||||
*
|
*
|
||||||
***********************************************************************/
|
***********************************************************************/
|
||||||
void *memcpy_s(void *d, size_t dmax, const void *s, size_t slen)
|
void *memcpy_s(void *d, size_t dmax, const void *s, size_t slen)
|
||||||
@ -63,17 +64,21 @@ void *memcpy_s(void *d, size_t dmax, const void *s, size_t slen)
|
|||||||
uint8_t *dest8;
|
uint8_t *dest8;
|
||||||
uint8_t *src8;
|
uint8_t *src8;
|
||||||
|
|
||||||
|
if (slen == 0 || dmax == 0 || dmax < slen) {
|
||||||
|
pr_err("%s: invalid src, dest buffer or length.", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((d > s && d <= s + slen - 1)
|
||||||
|
|| (d < s && s <= d + dmax - 1)) {
|
||||||
|
pr_err("%s: overlap happened.", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
/*same memory block, no need to copy*/
|
/*same memory block, no need to copy*/
|
||||||
if (d == s)
|
if (d == s)
|
||||||
return d;
|
return d;
|
||||||
|
|
||||||
ASSERT((slen != 0) && (dmax != 0) && (dmax >= slen),
|
|
||||||
"invalid slen or dmax.");
|
|
||||||
|
|
||||||
ASSERT(((d > s) && (d > s + slen - 1))
|
|
||||||
|| ((d < s) && (s > d + dmax - 1)),
|
|
||||||
"overlap happened.");
|
|
||||||
|
|
||||||
dest8 = (uint8_t *)d;
|
dest8 = (uint8_t *)d;
|
||||||
src8 = (uint8_t *)s;
|
src8 = (uint8_t *)s;
|
||||||
|
|
||||||
|
@ -63,8 +63,10 @@ char *strcpy_s(char *d, size_t dmax, const char *s)
|
|||||||
size_t dest_avail;
|
size_t dest_avail;
|
||||||
uint64_t overlap_guard;
|
uint64_t overlap_guard;
|
||||||
|
|
||||||
ASSERT(s != NULL, "invalid input s.");
|
if (s == NULL || d == NULL || dmax == 0) {
|
||||||
ASSERT((d != NULL) && (dmax != 0), "invalid input d or dmax.");
|
pr_err("%s: invalid src, dest buffer or length.", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (s == d)
|
if (s == d)
|
||||||
return d;
|
return d;
|
||||||
@ -75,7 +77,11 @@ char *strcpy_s(char *d, size_t dmax, const char *s)
|
|||||||
dest_base = d;
|
dest_base = d;
|
||||||
|
|
||||||
while (dest_avail > 0) {
|
while (dest_avail > 0) {
|
||||||
ASSERT(overlap_guard != 0, "overlap happened.");
|
if (overlap_guard == 0) {
|
||||||
|
pr_err("%s: overlap happened.", __func__);
|
||||||
|
*(--d) = '\0';
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
*d = *s;
|
*d = *s;
|
||||||
if (*d == '\0')
|
if (*d == '\0')
|
||||||
@ -87,7 +93,7 @@ char *strcpy_s(char *d, size_t dmax, const char *s)
|
|||||||
overlap_guard--;
|
overlap_guard--;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(false, "dest buffer has no enough space.");
|
pr_err("%s: dest buffer has no enough space.", __func__);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* to avoid a string that is not
|
* to avoid a string that is not
|
||||||
|
@ -66,8 +66,15 @@ char *strncpy_s(char *d, size_t dmax, const char *s, size_t slen)
|
|||||||
size_t dest_avail;
|
size_t dest_avail;
|
||||||
uint64_t overlap_guard;
|
uint64_t overlap_guard;
|
||||||
|
|
||||||
ASSERT((d != NULL) && (s != NULL), "invlaid input d or s");
|
if (d == NULL || s == NULL) {
|
||||||
ASSERT((dmax != 0) && (slen != 0), "invlaid input dmax or slen");
|
pr_err("%s: invlaid src or dest buffer", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (dmax == 0 || slen == 0) {
|
||||||
|
pr_err("%s: invlaid length of src or dest buffer", __func__);
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (d == s)
|
if (d == s)
|
||||||
return d;
|
return d;
|
||||||
@ -78,7 +85,11 @@ char *strncpy_s(char *d, size_t dmax, const char *s, size_t slen)
|
|||||||
dest_avail = dmax;
|
dest_avail = dmax;
|
||||||
|
|
||||||
while (dest_avail > 0) {
|
while (dest_avail > 0) {
|
||||||
ASSERT(overlap_guard != 0, "overlap happened.");
|
if (overlap_guard == 0) {
|
||||||
|
pr_err("%s: overlap happened.", __func__);
|
||||||
|
*(--d) = '\0';
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
if (slen == 0) {
|
if (slen == 0) {
|
||||||
*d = '\0';
|
*d = '\0';
|
||||||
@ -96,7 +107,7 @@ char *strncpy_s(char *d, size_t dmax, const char *s, size_t slen)
|
|||||||
overlap_guard--;
|
overlap_guard--;
|
||||||
}
|
}
|
||||||
|
|
||||||
ASSERT(false, "dest buffer has no enough space.");
|
pr_err("%s: dest buffer has no enough space.", __func__);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* to avoid a string that is not
|
* to avoid a string that is not
|
||||||
|
Loading…
Reference in New Issue
Block a user