diff --git a/fs/rpmsgfs/rpmsgfs_server.c b/fs/rpmsgfs/rpmsgfs_server.c index a7cd87bebc..443a1349e2 100644 --- a/fs/rpmsgfs/rpmsgfs_server.c +++ b/fs/rpmsgfs/rpmsgfs_server.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -950,13 +951,21 @@ static int rpmsgfs_ept_cb(FAR struct rpmsg_endpoint *ept, { struct rpmsgfs_header_s *header = data; uint32_t command = header->command; + int ret; - if (command < nitems(g_rpmsgfs_handler)) + if (command >= nitems(g_rpmsgfs_handler)) { - return g_rpmsgfs_handler[command](ept, data, len, src, priv); + return -EINVAL; } - return -EINVAL; + ret = g_rpmsgfs_handler[command](ept, data, len, src, priv); + if (ret < 0) + { + ferr("ERROR: handle failed, ept=%p cmd=%" PRIu32 " ret=%d\n", + ept, command, ret); + } + + return ret; } int rpmsgfs_server_init(void)