Hi,

Please find the latest report on new defect(s) introduced to 
antonyantony/libreswan found with Coverity Scan.

3 new defect(s) introduced to antonyantony/libreswan found with Coverity Scan.


New defect(s) Reported-by: Coverity Scan
Showing 3 of 3 defect(s)


** CID 1537106:    (OVERRUN)
/programs/pluto/kernel_xfrm.c: 702 in kernel_xfrm_policy_add()


________________________________________________________________________________________________________
*** CID 1537106:    (OVERRUN)
/programs/pluto/kernel_xfrm.c: 702 in kernel_xfrm_policy_add()
696             req.n.nlmsg_type = XFRM_MSG_UPDPOLICY;
697             req.n.nlmsg_len = NLMSG_SPACE(sizeof(struct 
xfrm_userpolicy_info));
698             struct xfrm_userpolicy_info *info = NLMSG_DATA(&req.n);
699             set_xfrm_selectors(&info->sel, src_client, dst_client);
700     
701             /* The caller should have set the proper priority by now */
>>>     CID 1537106:    (OVERRUN)
>>>     Overrunning array of 16 bytes at byte offset 16 by dereferencing 
>>> pointer "info".
702             info->priority = kernel_policy->priority.value;
703             dbg("%s() IPsec SA SPD priority set to %d", __func__, 
info->priority);
704     
705             info->action = xfrm_action;
706             /* info->lft.soft_use_expires_seconds = 
deltasecs(use_lifetime); */
707             info->lft.soft_byte_limit = XFRM_INF;
/programs/pluto/kernel_xfrm.c: 780 in kernel_xfrm_policy_add()
774              * Add mark policy extension if present.
775              *
776              * XXX: again, can't the caller decide this?
777              *
778              * XXX: identical code in policy_add(), time to share?
779              */
>>>     CID 1537106:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 443 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 444).
780             add_xfrmi_marks(&req.n, sa_marks, xfrmi, xfrm_dir, 
sizeof(req.data));
781             add_sec_label(&req.n, sec_label);
782     
783             bool ok = sendrecv_xfrm_policy(&req.n, what_about_inbound, 
policy_name,
784                                            (dir == DIRECTION_OUTBOUND ? 
"(out)" : "(in)"),
785                                            logger);
/programs/pluto/kernel_xfrm.c: 781 in kernel_xfrm_policy_add()
775              *
776              * XXX: again, can't the caller decide this?
777              *
778              * XXX: identical code in policy_add(), time to share?
779              */
780             add_xfrmi_marks(&req.n, sa_marks, xfrmi, xfrm_dir, 
sizeof(req.data));
>>>     CID 1537106:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 443 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 444).
781             add_sec_label(&req.n, sec_label);
782     
783             bool ok = sendrecv_xfrm_policy(&req.n, what_about_inbound, 
policy_name,
784                                            (dir == DIRECTION_OUTBOUND ? 
"(out)" : "(in)"),
785                                            logger);
786     
/programs/pluto/kernel_xfrm.c: 783 in kernel_xfrm_policy_add()
777              *
778              * XXX: identical code in policy_add(), time to share?
779              */
780             add_xfrmi_marks(&req.n, sa_marks, xfrmi, xfrm_dir, 
sizeof(req.data));
781             add_sec_label(&req.n, sec_label);
782     
>>>     CID 1537106:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 443 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 444).
783             bool ok = sendrecv_xfrm_policy(&req.n, what_about_inbound, 
policy_name,
784                                            (dir == DIRECTION_OUTBOUND ? 
"(out)" : "(in)"),
785                                            logger);
786     
787             /*
788              * ??? deal with any forwarding policy.
/programs/pluto/kernel_xfrm.c: 807 in kernel_xfrm_policy_add()
801                             if (kernel_policy->shunt == SHUNT_IPSEC &&
802                                 kernel_policy->mode == 
ENCAP_MODE_TRANSPORT) {
803                                     break;
804                             }
805                             dbg("xfrm: %s() adding policy forward (suspect 
a tunnel)", __func__);
806                             info->dir = XFRM_POLICY_FWD;
>>>     CID 1537106:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 443 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 444).
807                             ok &= sendrecv_xfrm_policy(&req.n, 
what_about_inbound,
808                                                        policy_name, 
"(fwd)", logger);
809                             break;
810                     default:
811                             break; /*no-op*/
812                     }

** CID 1537105:  Memory - illegal accesses  (OVERRUN)
/programs/pluto/kernel_xfrm.c: 735 in kernel_xfrm_policy_add()


________________________________________________________________________________________________________
*** CID 1537105:  Memory - illegal accesses  (OVERRUN)
/programs/pluto/kernel_xfrm.c: 735 in kernel_xfrm_policy_add()
729                     /* only the first rule gets the worm; er tunnel flag */
730                     unsigned mode = (kernel_policy->mode == 
ENCAP_MODE_TUNNEL ? XFRM_MODE_TUNNEL :
731                                      XFRM_MODE_TRANSPORT);
732                     for (unsigned i = 0; i < kernel_policy->nr_rules; i++) {
733                             const struct kernel_policy_rule *rule = 
&kernel_policy->rule[i];
734                             struct xfrm_user_tmpl *tmpl = &tmpls[i];
>>>     CID 1537105:  Memory - illegal accesses  (OVERRUN)
>>>     Overrunning array of 24 bytes at byte offset 24 by dereferencing 
>>> pointer "rule".
735                             tmpl->reqid = rule->reqid;
736                             tmpl->id.proto = rule->proto;
737                             tmpl->optional = (rule->proto == 
ENCAP_PROTO_IPCOMP &&
738                                               xfrm_dir != XFRM_POLICY_OUT);
739                             tmpl->aalgos = tmpl->ealgos = tmpl->calgos = ~0;
740                             tmpl->family = 
address_type(&kernel_policy->dst.host)->af;

** CID 1537104:    (OVERRUN)
/programs/pluto/kernel_xfrm.c: 851 in kernel_xfrm_policy_del()


________________________________________________________________________________________________________
*** CID 1537104:    (OVERRUN)
/programs/pluto/kernel_xfrm.c: 862 in kernel_xfrm_policy_del()
856              * Add mark policy extension if present.
857              *
858              * XXX: again, can't the caller decide this?
859              *
860              * XXX: identical code in policy_add(), time to share?
861              */
>>>     CID 1537104:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 79 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 80).
862             add_xfrmi_marks(&req.n, sa_marks, xfrmi, xfrm_dir, 
sizeof(req.data));
863             add_sec_label(&req.n, sec_label);
864     
865             bool ok = sendrecv_xfrm_policy(&req.n, expect_kernel_policy, 
"delete",
866                                            (direction == DIRECTION_OUTBOUND 
? "(out)" :
867                                             direction == DIRECTION_INBOUND 
? "(in)" :
/programs/pluto/kernel_xfrm.c: 888 in kernel_xfrm_policy_del()
882                      *
883                      * XXX: It's also called when transport mode!
884                      */
885                     dbg("xfrm: %s() deleting policy forward (even when 
there may not be one)",
886                         __func__);
887                     id->dir = XFRM_POLICY_FWD;
>>>     CID 1537104:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 79 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 80).
888                     ok &= sendrecv_xfrm_policy(&req.n, 
IGNORE_KERNEL_POLICY_MISSING,
889                                                "delete", "(fwd)", logger);
890             }
891             return ok;
892     }
893     
/programs/pluto/kernel_xfrm.c: 865 in kernel_xfrm_policy_del()
859              *
860              * XXX: identical code in policy_add(), time to share?
861              */
862             add_xfrmi_marks(&req.n, sa_marks, xfrmi, xfrm_dir, 
sizeof(req.data));
863             add_sec_label(&req.n, sec_label);
864     
>>>     CID 1537104:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 79 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 80).
865             bool ok = sendrecv_xfrm_policy(&req.n, expect_kernel_policy, 
"delete",
866                                            (direction == DIRECTION_OUTBOUND 
? "(out)" :
867                                             direction == DIRECTION_INBOUND 
? "(in)" :
868                                             NULL),
869                                            logger);
870     
/programs/pluto/kernel_xfrm.c: 851 in kernel_xfrm_policy_del()
845             const int family = dst_child_afi->af;
846             dbg("%s() using family %s (%d)", __func__, 
dst_child_afi->ip_name, family);
847     
848             req.n.nlmsg_type = XFRM_MSG_DELPOLICY;
849             req.n.nlmsg_len = NLMSG_SPACE(sizeof(struct 
xfrm_userpolicy_id));
850             struct xfrm_userpolicy_id *id = NLMSG_DATA(&req.n);
>>>     CID 1537104:    (OVERRUN)
>>>     Overrunning array of 16 bytes at byte offset 16 by dereferencing 
>>> pointer "id".
851             id->dir = xfrm_dir;
852             set_xfrm_selectors(&id->sel, src_child, dst_child);
853             id->index = policy_id;
854     
855             /*
856              * Add mark policy extension if present.
/programs/pluto/kernel_xfrm.c: 863 in kernel_xfrm_policy_del()
857              *
858              * XXX: again, can't the caller decide this?
859              *
860              * XXX: identical code in policy_add(), time to share?
861              */
862             add_xfrmi_marks(&req.n, sa_marks, xfrmi, xfrm_dir, 
sizeof(req.data));
>>>     CID 1537104:    (OVERRUN)
>>>     Overrunning struct type nlmsghdr of 16 bytes by passing it to a 
>>> function which accesses it at byte offset 79 using argument 
>>> "req.n.nlmsg_len" (which evaluates to 80).
863             add_sec_label(&req.n, sec_label);
864     
865             bool ok = sendrecv_xfrm_policy(&req.n, expect_kernel_policy, 
"delete",
866                                            (direction == DIRECTION_OUTBOUND 
? "(out)" :
867                                             direction == DIRECTION_INBOUND 
? "(in)" :
868                                             NULL),


________________________________________________________________________________________________________
To view the defects in Coverity Scan visit, 
https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yq8aBKViEpsZ9KPFMeJd7kKMDjyzu82COVFw1h1aYx-2FtFrefiPxkohPqZgI7DsTRPR5L954NuJuE0J6c4ee-2B5kYL1A7_Cir5ZFqEb-2Fpy-2FZDdTxjwNXxDWd37ZfwlkdBT1REyQ38PRehiK-2Bp0hLyPgvotFakrqFw9Ipd6eAurWg-2FtqtVFJO-2Fe0-2BbkyzgzqAsnWekBfljlTFJRhYk-2FDsXKcPiCMarOXzHpboCx5GtdNFwfj0dlj51jX-2FXOhmXWq0zbZ9hev6mrnF1JxJOXgvAe3Qpd4PGVafRnHOuM04dZF-2Frnol4-2BIdgPoUG7hmKGYwRuGrTc0HE-3D

  To manage Coverity Scan email notifications for 
"[email protected]", click 
https://u15810271.ct.sendgrid.net/ls/click?upn=HRESupC-2F2Czv4BOaCWWCy7my0P0qcxCbhZ31OYv50yped04pjJnmXOsUBtKYNIXxUzCfl-2FUi6sRJtnGH1-2FWXEIl9xkb2JliKiAkqgdujeIgWYvUCIHO1g-2Ba8I-2B0nANYHmrw9-2B13a9hJ7YOPZRdlHcEQfoMvDvjqsfrRNzFQ8lscduvXP5RLkPig71dIKudxi_bti_Cir5ZFqEb-2Fpy-2FZDdTxjwNXxDWd37ZfwlkdBT1REyQ38PRehiK-2Bp0hLyPgvotFakrqFw9Ipd6eAurWg-2FtqtVFJPv6RKJp3eui9isIZrgt4E8AFBLVYcniVX1CsfvcIh6MAdpHvbE-2FSuDwg0Z7iHU68tqmHp9-2F-2BlMv2WsESFgPnmOa65YlHMGdurK5FNwLhams5mD-2FzkxX7tzaetKELCnP7p-2B-2Fi1dQhbkyw-2FjSn2gEvtA-3D

_______________________________________________
Swan-dev mailing list
[email protected]
https://lists.libreswan.org/mailman/listinfo/swan-dev

Reply via email to