summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-09-17 10:54:25 -0400
committerPaul Jakma <paul@quagga.net>2015-09-24 15:26:44 +0100
commita9d4cb33faa6af622240190a80f41c4672374925 (patch)
tree9590bb1715d7418b50a742a3c83363d4e4b67755 /lib
parentf733280419f18b1a0e3b06ec3681781689d57053 (diff)
downloadquagga-a9d4cb33faa6af622240190a80f41c4672374925.tar.bz2
quagga-a9d4cb33faa6af622240190a80f41c4672374925.tar.xz
lib/zclient: Consolidate error reporting for zclient_read_header
All functions that call zclient_read_header immediately turn around and check to ensure that the version and marker fields are correct Move this code into zclient_read_header Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'lib')
-rw-r--r--lib/zclient.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/zclient.c b/lib/zclient.c
index a0956324..0ce46fef 100644
--- a/lib/zclient.c
+++ b/lib/zclient.c
@@ -315,6 +315,13 @@ zclient_read_header (struct stream *s, int sock, u_int16_t *size, u_char *marker
*vrf_id = stream_getw (s);
*cmd = stream_getw (s);
+ if (*version != ZSERV_VERSION || *marker != ZEBRA_HEADER_MARKER)
+ {
+ zlog_err("%s: socket %d version mismatch, marker %d, version %d",
+ __func__, sock, *marker, *version);
+ return -1;
+ }
+
if (*size && stream_read (s, sock, *size) != *size)
return -1;