From b2679481b57d87945df02983f95ff8e6c9ba5928 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Mon, 12 Mar 2012 15:34:53 -0700 Subject: [PATCH] Fix potential NPE in SQLiteProgram. Bug: 6122537 Change-Id: I76a12f58f08b708065dfdd11c78f54701d90873b --- .../database/sqlite/SQLiteProgram.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/core/java/android/database/sqlite/SQLiteProgram.java b/core/java/android/database/sqlite/SQLiteProgram.java index 94a23cb422c5e..e9b06c67588c2 100644 --- a/core/java/android/database/sqlite/SQLiteProgram.java +++ b/core/java/android/database/sqlite/SQLiteProgram.java @@ -64,19 +64,19 @@ public abstract class SQLiteProgram extends SQLiteClosable { break; } - if (mNumParameters != 0) { - mBindArgs = new Object[mNumParameters]; - } else { - mBindArgs = null; + if (bindArgs != null && bindArgs.length > mNumParameters) { + throw new IllegalArgumentException("Too many bind arguments. " + + bindArgs.length + " arguments were provided but the statement needs " + + mNumParameters + " arguments."); } - if (bindArgs != null) { - if (bindArgs.length > mNumParameters) { - throw new IllegalArgumentException("Too many bind arguments. " - + bindArgs.length + " arguments were provided but the statement needs " - + mNumParameters + " arguments."); + if (mNumParameters != 0) { + mBindArgs = new Object[mNumParameters]; + if (bindArgs != null) { + System.arraycopy(bindArgs, 0, mBindArgs, 0, bindArgs.length); } - System.arraycopy(bindArgs, 0, mBindArgs, 0, bindArgs.length); + } else { + mBindArgs = null; } }