hv: fix 'Recursion in procedure calls found'

Here is how the recursion might happen:

                     when there is something wrong
                     |
sbuf_put -> memcpy_s -> pr_err -> do_logmsg
   |                                 |
   -----------------------------------

Replace 'pr_err' with 'ASSERT' in 'memcpy_s' to break this kind of
recursion.

Signed-off-by: Shiqing Gao <shiqing.gao@intel.com>
This commit is contained in:
Shiqing Gao
2018-07-06 11:18:01 +08:00
committed by wenlingz
parent deb44402e3
commit 54bd55d636
3 changed files with 3 additions and 6 deletions

View File

@@ -344,14 +344,12 @@ void *memcpy_s(void *d, size_t dmax, const void *s, size_t slen)
uint8_t *src8;
if (slen == 0U || dmax == 0U || dmax < slen) {
pr_err("%s: invalid src, dest buffer or length.", __func__);
return NULL;
ASSERT(false);
}
if ((d > s && d <= s + slen - 1)
|| (d < s && s <= d + dmax - 1)) {
pr_err("%s: overlap happened.", __func__);
return NULL;
ASSERT(false);
}
/*same memory block, no need to copy*/