Summary: amfd: V2 Invalid read when deleting a node from a node group [#719]
Review request for Trac Ticket(s): 719
Peer Reviewer(s): Hans N.
Pull request to:
Affected branch(es): default, opensaf-4.4.x, opensaf-4.3.x, opensaf-4.2.x
Development branch: default
--------------------------------
Impacted area Impact y/n
--------------------------------
Docs n
Build system n
RPM/packaging n
Configuration files n
Startup scripts n
SAF services y
OpenSAF services n
Core libraries n
Samples n
Tests n
Other n
Comments (indicate scope for each "y" above):
---------------------------------------------
Tested the read error is gone by re-running the same
test case that triggered the error, under valgrind.
Please replace two instances of "report_ccb_validation_error(opdata, "
with "LOG_ER(" when applying the patch to opensaf-4.3.x and opensaf-4.2.x.
Also, the changes to sg.cc are NOT applicable to opensaf-4.3.x and
opensaf-4.2.x.
Changes since V1 review:
removed node_in_ng from sg.cc
node_in_nodegroup() modified slightly
changeset 4826f11b8a7beb9714247454c69c468448e29ce1
Author: Gary Lee <[email protected]>
Date: Fri, 24 Jan 2014 16:37:36 +1100
amfd: fix out-of-bounds read from nodelist array [#719]
* fix out-of-bounds read in ng_ccb_apply_modify_hdlr() when the node to
be
deleted is located at the end of saAmfNGNodeList
* modify ng_ccb_completed_modify_hdlr() to reject multiple node
deletions
from a node group in a single CCB, as this is not currently supported in
ng_ccb_apply_modify_hdlr(). Also add a check for attempts to delete a
node
that does not belong to the node group. Previously this caused an
assert.
* replace node_in_ng() from sg.cc with a similar function
node_in_nodegroup() in nodegroup.cc, to avoid code duplication.
Complete diffstat:
------------------
osaf/services/saf/amf/amfd/include/node.h | 1 +
osaf/services/saf/amf/amfd/nodegroup.cc | 35
++++++++++++++++++++++++++++++++++-
osaf/services/saf/amf/amfd/sg.cc | 19 +------------------
3 files changed, 36 insertions(+), 19 deletions(-)
Testing Commands:
-----------------
<<LIST THE COMMAND LINE TOOLS/STEPS TO TEST YOUR CHANGES>>
Testing, Expected Results:
--------------------------
<<PASTE COMMAND OUTPUTS / TEST RESULTS>>
Conditions of Submission:
-------------------------
<<HOW MANY DAYS BEFORE PUSHING, CONSENSUS ETC>>
Arch Built Started Linux distro
-------------------------------------------
mips n n
mips64 n n
x86 n n
x86_64 y y
powerpc n n
powerpc64 n n
Reviewer Checklist:
-------------------
[Submitters: make sure that your review doesn't trigger any checkmarks!]
Your checkin has not passed review because (see checked entries):
___ Your RR template is generally incomplete; it has too many blank entries
that need proper data filled in.
___ You have failed to nominate the proper persons for review and push.
___ Your patches do not have proper short+long header
___ You have grammar/spelling in your header that is unacceptable.
___ You have exceeded a sensible line length in your headers/comments/text.
___ You have failed to put in a proper Trac Ticket # into your commits.
___ You have incorrectly put/left internal data in your comments/files
(i.e. internal bug tracking tool IDs, product names etc)
___ You have not given any evidence of testing beyond basic build tests.
Demonstrate some level of runtime or other sanity testing.
___ You have ^M present in some of your files. These have to be removed.
___ You have needlessly changed whitespace or added whitespace crimes
like trailing spaces, or spaces before tabs.
___ You have mixed real technical changes with whitespace and other
cosmetic code cleanup changes. These have to be separate commits.
___ You need to refactor your submission into logical chunks; there is
too much content into a single commit.
___ You have extraneous garbage in your review (merge commits etc)
___ You have giant attachments which should never have been sent;
Instead you should place your content in a public tree to be pulled.
___ You have too many commits attached to an e-mail; resend as threaded
commits, or place in a public tree for a pull.
___ You have resent this content multiple times without a clear indication
of what has changed between each re-send.
___ You have failed to adequately and individually address all of the
comments and change requests that were proposed in the initial review.
___ You have a misconfigured ~/.hgrc file (i.e. username, email etc)
___ Your computer have a badly configured date and time; confusing the
the threaded patch review.
___ Your changes affect IPC mechanism, and you don't present any results
for in-service upgradability test.
___ Your changes affect user manual and documentation, your patch series
do not contain the patch that updates the Doxygen manual.
------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today.
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel