From ee179a16f7ac879994eaa6fdb65bd779ea1c8c91 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Mon, 12 Apr 2021 15:29:01 +0800 Subject: [PATCH] sf_recv_response_header: call SF_PROTO_CHECK_MAGIC --- src/sf_proto.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/sf_proto.c b/src/sf_proto.c index 28ca58e..ed634b4 100644 --- a/src/sf_proto.c +++ b/src/sf_proto.c @@ -56,7 +56,7 @@ int sf_check_response(ConnectionInfo *conn, SFResponseInfo *response, response->error.message, "response cmd: %d != expect: %d", response->header.cmd, expect_cmd); - return EINVAL; + return ERANGE; } return 0; @@ -108,6 +108,16 @@ static inline int sf_recv_response_header(ConnectionInfo *conn, return result; } + if (!SF_PROTO_CHECK_MAGIC(header_proto.magic)) { + response->error.length = snprintf(response->error.message, + sizeof(response->error.message), + "magic "SF_PROTO_MAGIC_FORMAT" is invalid, " + "expect: "SF_PROTO_MAGIC_FORMAT, + SF_PROTO_MAGIC_PARAMS(header_proto.magic), + SF_PROTO_MAGIC_EXPECT_PARAMS); + return EINVAL; + } + sf_proto_extract_header(&header_proto, &response->header); return 0; }