[ovs-dev] [ofp-print 03/18] Use ofpbuf_pull() instead of ofpbuf_try_pull() where it is valid.
Ben Pfaff
blp at nicira.com
Thu Dec 9 00:26:55 UTC 2010
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 7673b66..cbba506 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 1ac5983..d5f258f 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;
--
1.7.1
More information about the dev
mailing list