[yast-commit] r64124 - in /trunk/core/libycp: src/YCPBuiltinList.cc testsuite/tests/values/List2.err testsuite/tests/values/List2.out testsuite/tests/values/List2.ycp

Author: mvidner Date: Thu May 26 18:58:49 2011 New Revision: 64124 URL: http://svn.opensuse.org/viewcvs/yast?rev=64124&view=rev Log: Don't crash when adding to a nil list (bnc#694520). Added: trunk/core/libycp/testsuite/tests/values/List2.err trunk/core/libycp/testsuite/tests/values/List2.out trunk/core/libycp/testsuite/tests/values/List2.ycp (with props) Modified: trunk/core/libycp/src/YCPBuiltinList.cc Modified: trunk/core/libycp/src/YCPBuiltinList.cc URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/src/YCPBuiltinList.cc... ============================================================================== --- trunk/core/libycp/src/YCPBuiltinList.cc (original) +++ trunk/core/libycp/src/YCPBuiltinList.cc Thu May 26 18:58:49 2011 @@ -826,7 +826,7 @@ static YCPValue -l_add (const YCPList &list, const YCPValue &value) +l_add (const YCPValue &list, const YCPValue &value) { /** * @builtin add @@ -842,12 +842,13 @@ * @usage add ([1, 4], 8) -> [1, 4, 8] */ - if (list.isNull ()) + if (list.isNull () || !list->isList()) { + ycp2error ("Adding to a nil list"); return YCPNull (); } - return list->functionalAdd (value); + return list->asList()->functionalAdd (value); } Added: trunk/core/libycp/testsuite/tests/values/List2.err URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/value... ============================================================================== --- trunk/core/libycp/testsuite/tests/values/List2.err (added) +++ trunk/core/libycp/testsuite/tests/values/List2.err Thu May 26 18:58:49 2011 @@ -0,0 +1,11 @@ +Parsed: +---------------------------------------------------------------------- +{ + // list l + // filename: "tests/values/List2.ycp" + list l = nil; + l = add (l, 42); + return ["a nil list should not crash on add:", l]; +} +---------------------------------------------------------------------- +[Interpreter] tests/values/List2.ycp:4 Adding to a nil list Added: trunk/core/libycp/testsuite/tests/values/List2.out URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/value... ============================================================================== --- trunk/core/libycp/testsuite/tests/values/List2.out (added) +++ trunk/core/libycp/testsuite/tests/values/List2.out Thu May 26 18:58:49 2011 @@ -0,0 +1 @@ +(["a nil list should not crash on add:", nil]) Added: trunk/core/libycp/testsuite/tests/values/List2.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/core/libycp/testsuite/tests/value... ============================================================================== --- trunk/core/libycp/testsuite/tests/values/List2.ycp (added) +++ trunk/core/libycp/testsuite/tests/values/List2.ycp Thu May 26 18:58:49 2011 @@ -0,0 +1,6 @@ +// bnc#694520 +{ + list l = nil; + l = add (l, 42); + return ["a nil list should not crash on add:", l]; +} -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org
participants (1)
-
mvidner@svn2.opensuse.org