Use ofpbuf_pull() instead of ofpbuf_try_pull() where it is valid.
authorBen Pfaff <blp@nicira.com>
Tue, 7 Dec 2010 23:49:36 +0000 (15:49 -0800)
committerBen Pfaff <blp@nicira.com>
Thu, 9 Dec 2010 01:11:19 +0000 (17:11 -0800)
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
ofproto/ofproto.c

index a9df013..75d31e3 100644 (file)
@@ -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;
index 1ac5983..d5f258f 100644 (file)
@@ -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;