If condition checks number of arguments properly but still executes EXEC command. It should display error message and return. --- android/client/if-bt.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/android/client/if-bt.c b/android/client/if-bt.c index 3d97458..2c3cc4a 100644 --- a/android/client/if-bt.c +++ b/android/client/if-bt.c @@ -719,12 +719,15 @@ static void pin_reply_p(int argc, const char **argv) RETURN_IF_NULL(if_bluetooth); VERIFY_ADDR_ARG(2, &addr); - if (argc > 3) { - accept = 1; - pin_len = strlen(argv[3]); - memcpy(pin.pin, argv[3], pin_len); + if (argc != 4) { + haltest_error("Usage <address> <pin>\n"); + return; } + accept = 1; + pin_len = strlen(argv[3]); + memcpy(pin.pin, argv[3], pin_len); + EXEC(if_bluetooth->pin_reply, &addr, accept, pin_len, &pin); } -- 1.8.1.2 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html