diff --git a/hievent/src/hievent_driver.c b/hievent/src/hievent_driver.c index 1f46d4f3b380e1a486436dd3329a0f6f82b1ea6e..9d0550be85127fcc9819128c96b47e66ce4ec240 100644 --- a/hievent/src/hievent_driver.c +++ b/hievent/src/hievent_driver.c @@ -201,6 +201,13 @@ static ssize_t HieventRead(struct file *filep, char *buffer, size_t bufLen) retval = header.len + sizeof(header); out: + if (retval == -ENOMEM) { + // clean ring buffer + g_hieventDev.writeOffset = 0; + g_hieventDev.headOffset = 0; + g_hieventDev.size = 0; + g_hieventDev.count = 0; + } (VOID)LOS_MuxRelease(&g_hieventDev.mtx); return retval;