vcl: hold errno when calling LDBG 66/28266/2
authorhanlin <[email protected]>
Mon, 30 Dec 2019 08:25:20 +0000 (16:25 +0800)
committerDave Wallace <[email protected]>
Wed, 12 Aug 2020 14:37:52 +0000 (14:37 +0000)
commit1144fb0f98ad4c7b84aad6b480933fa409c6f4c7
tree8c8ab255d7ec4e90a48dc321fc92b9c232898179
parent6104daa550b702b59ac6764efba593261d68c743
vcl: hold errno when calling LDBG

Type: fix

Call trace of LDBG:
LDBG->clib_warning->_clib_error->dispatch_message->os_puts->writev
However, writev will hijacked by LDP, and then execute following code:
if ((errno = -ldp_init ()))
    return -1;
Now, errno will be set.

Because we always call LDBG just before return from ldp_accept4, listen,
and etc. So errno will be overwritted after LDBG called.

Signed-off-by: hanlin <[email protected]>
Change-Id: I7a90f3a14772994f11f09650481411796e3f5630
(cherry picked from commit 9f3f18f99fd321cdcfc331e92b10b64f0ef590b3)
src/vcl/ldp.c