From bbc32a883f790a331b412eecc6de4b7cdf1e63cb Mon Sep 17 00:00:00 2001 From: Ben Pfaff Date: Tue, 7 Dec 2010 15:49:36 -0800 Subject: [PATCH] Use ofpbuf_pull() instead of ofpbuf_try_pull() where it is valid. In each of these cases, we know that the buffer is long enough to pull the header because ofputil_decode_msg_type() already checked for us. --- lib/ofp-util.c | 15 +++------------ ofproto/ofproto.c | 15 +++------------ 2 files changed, 6 insertions(+), 24 deletions(-) diff --git a/lib/ofp-util.c b/lib/ofp-util.c index a9df0138..75d31e3d 100644 --- a/lib/ofp-util.c +++ b/lib/ofp-util.c @@ -897,10 +897,7 @@ ofputil_decode_flow_mod(struct flow_mod *fm, const struct ofp_header *oh, int error; /* Dissect the message. */ - ofm = ofpbuf_try_pull(&b, sizeof *ofm); - if (!ofm) { - return ofp_mkerr(OFPET_BAD_REQUEST, OFPBRC_BAD_LEN); - } + ofm = ofpbuf_pull(&b, sizeof *ofm); error = ofputil_pull_actions(&b, b.size, &fm->actions, &fm->n_actions); if (error) { return error; @@ -940,10 +937,7 @@ ofputil_decode_flow_mod(struct flow_mod *fm, const struct ofp_header *oh, int error; /* Dissect the message. */ - nfm = ofpbuf_try_pull(&b, sizeof *nfm); - if (!nfm) { - return ofp_mkerr(OFPET_BAD_REQUEST, OFPBRC_BAD_LEN); - } + nfm = ofpbuf_pull(&b, sizeof *nfm); error = nx_pull_match(&b, ntohs(nfm->match_len), ntohs(nfm->priority), &fm->cr); if (error) { @@ -1054,10 +1048,7 @@ ofputil_decode_nxst_flow_request(struct flow_stats_request *fsr, ofpbuf_use_const(&b, oh, ntohs(oh->length)); - nfsr = ofpbuf_try_pull(&b, sizeof *nfsr); - if (!nfsr) { - return ofp_mkerr(OFPET_BAD_REQUEST, OFPBRC_BAD_LEN); - } + nfsr = ofpbuf_pull(&b, sizeof *nfsr); error = nx_pull_match(&b, ntohs(nfsr->match_len), 0, &fsr->match); if (error) { return error; diff --git a/ofproto/ofproto.c b/ofproto/ofproto.c index 1ac5983d..d5f258ff 100644 --- a/ofproto/ofproto.c +++ b/ofproto/ofproto.c @@ -3073,10 +3073,7 @@ handle_packet_out(struct ofconn *ofconn, const struct ofp_header *oh) /* Get ofp_packet_out. */ ofpbuf_use_const(&request, oh, ntohs(oh->length)); - opo = ofpbuf_try_pull(&request, offsetof(struct ofp_packet_out, actions)); - if (!opo) { - return ofp_mkerr(OFPET_BAD_REQUEST, OFPBRC_BAD_LEN); - } + opo = ofpbuf_pull(&request, offsetof(struct ofp_packet_out, actions)); /* Get actions. */ error = ofputil_pull_actions(&request, ntohs(opo->actions_len), @@ -3517,10 +3514,7 @@ handle_nxst_flow(struct ofconn *ofconn, const struct ofp_header *oh) ofpbuf_use_const(&b, oh, ntohs(oh->length)); /* Dissect the message. */ - nfsr = ofpbuf_try_pull(&b, sizeof *nfsr); - if (!nfsr) { - return ofp_mkerr(OFPET_BAD_REQUEST, OFPBRC_BAD_LEN); - } + nfsr = ofpbuf_pull(&b, sizeof *nfsr); error = nx_pull_match(&b, ntohs(nfsr->match_len), 0, &target); if (error) { return error; @@ -3652,10 +3646,7 @@ handle_nxst_aggregate(struct ofconn *ofconn, const struct ofp_header *oh) ofpbuf_use_const(&b, oh, ntohs(oh->length)); /* Dissect the message. */ - request = ofpbuf_try_pull(&b, sizeof *request); - if (!request) { - return ofp_mkerr(OFPET_BAD_REQUEST, OFPBRC_BAD_LEN); - } + request = ofpbuf_pull(&b, sizeof *request); error = nx_pull_match(&b, ntohs(request->match_len), 0, &target); if (error) { return error; -- 2.30.2