From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2093 invoked by alias); 10 Dec 2007 20:09:17 -0000 Received: (qmail 2034 invoked by uid 367); 10 Dec 2007 20:09:16 -0000 Date: Mon, 10 Dec 2007 20:09:00 -0000 Message-ID: <20071210200916.2019.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Fix NPE in input parser. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 031d8a4db7053c83ff030b44732c545ac0fb4a7c X-Git-Newrev: 4581f27bd20fc5b8f30e181ec4e0d22af79f510b Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2007-q4/txt/msg00558.txt.bz2 The branch, master has been updated via 4581f27bd20fc5b8f30e181ec4e0d22af79f510b (commit) from 031d8a4db7053c83ff030b44732c545ac0fb4a7c (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 4581f27bd20fc5b8f30e181ec4e0d22af79f510b Author: Andrew Cagney Date: Mon Dec 10 15:08:21 2007 -0500 Fix NPE in input parser. frysk-core/frysk/hpd/ChangeLog 2007-12-10 Andrew Cagney * TestInput.java (check): Check out-of-range requests. * Input.java (parameter(int)): Fix off-by-one check of upper-bound. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/hpd/ChangeLog | 4 ++++ frysk-core/frysk/hpd/Input.java | 2 +- frysk-core/frysk/hpd/TestInput.java | 13 +++++++++---- 3 files changed, 14 insertions(+), 5 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog index 137b5ea..5d2b6e7 100644 --- a/frysk-core/frysk/hpd/ChangeLog +++ b/frysk-core/frysk/hpd/ChangeLog @@ -1,5 +1,9 @@ 2007-12-10 Andrew Cagney + * TestInput.java (check): Check out-of-range requests. + * Input.java (parameter(int)): Fix off-by-one check of + upper-bound. + * TestEvalCommands.java (testFormatInteger_b()): Replace testFormatInteger_t(). * CommandOption.java (FormatOption.parse(String,Object)): Change diff --git a/frysk-core/frysk/hpd/Input.java b/frysk-core/frysk/hpd/Input.java index 80317c7..c47f68b 100644 --- a/frysk-core/frysk/hpd/Input.java +++ b/frysk-core/frysk/hpd/Input.java @@ -120,7 +120,7 @@ class Input { * Return the N'th parameter. */ String parameter(int n) { - if (n < 0 || n > size()) + if (n < 0 || n >= size()) return null; else return token(n).value; diff --git a/frysk-core/frysk/hpd/TestInput.java b/frysk-core/frysk/hpd/TestInput.java index 1f0cc6f..4288fd1 100644 --- a/frysk-core/frysk/hpd/TestInput.java +++ b/frysk-core/frysk/hpd/TestInput.java @@ -54,15 +54,20 @@ public class TestInput extends TestLib { assertEquals("set", set, input.getSet()); assertEquals("stringArrayValue", results, input.stringArrayValue()); for (int i = 0; i < results.length; i++) { - assertEquals("parameter " + i, - i == results.length ? null : results[i], + assertEquals("parameter " + i, results[i], input.parameter(i)); - assertEquals("value " + i, - i == results.length ? null : results[i], + assertEquals("value " + i, results[i], input.token(i).value); assertEquals("start " + i, starts[i], input.token(i).start); assertEquals("end " + i, ends[i], input.token(i).end); } + // When out-of-bounds, NULL is returned. + assertEquals("parameter -1", null, input.parameter(-1)); + assertEquals("value -1", null, input.token(-1)); + assertEquals("parameter " + results.length, null, + input.parameter(results.length)); + assertEquals("value " + results.length, null, + input.token(results.length)); } private void check(Input input, String[] results) { hooks/post-receive -- frysk system monitor/debugger