console: Fix 'event send' handling.

This patch fixes two bugs in the implementation of the 'event send'
command:

1/ It prevents a crash when using the '0:0:0' event triple
   (note that the equivalent EV_SYNC:0:0 used in testing didn't crash)

2/ If fixes the parser to correctly handle several event triples on
   the same line, as in:

      event send  <type1>:<code1>:<value1> <type2>:<code2>:<value2> ...

Change-Id: I26cb55dd2feb75fda4f50ba0d49c7c8ad8a9dcca
diff --git a/android/console.c b/android/console.c
index 505d331..daae2d7 100644
--- a/android/console.c
+++ b/android/console.c
@@ -1854,9 +1854,10 @@
     p = args;
     while (*p) {
         char*  q;
+        char   temp[128];
         int    type, code, value, ret;
 
-        p += strspn( args, " \t" );  /* skip spaces */
+        p += strspn( p, " \t" );  /* skip spaces */
         if (*p == 0)
             break;
 
@@ -1865,7 +1866,8 @@
         if (q == p)
             break;
 
-        ret = android_event_from_str( p, &type, &code, &value );
+        snprintf(temp, sizeof temp, "%.*s", q-p, p);
+        ret = android_event_from_str( temp, &type, &code, &value );
         if (ret < 0) {
             if (ret == -1) {
                 control_write( client,
diff --git a/android/hw-events.c b/android/hw-events.c
index 7c3f9e9..4318f65 100644
--- a/android/hw-events.c
+++ b/android/hw-events.c
@@ -106,7 +106,7 @@
     if (namelen <= 0)
         return -1;
 
-    for ( ; list != NULL; list += 1 ) {
+    for ( ; list->name != NULL; list += 1 ) {
         if ( !memcmp(name, list->name, namelen) &&
              list->name[namelen] == 0 )
         {
@@ -167,7 +167,11 @@
         q = pend;
 
     list   = eventList_findByType( *ptype );
-    *pcode = eventList_findCodeByName( list, p, q-p );
+    if (list == NULL) {
+        *pcode = -1;
+    } else {
+        *pcode = eventList_findCodeByName( list, p, q-p );
+    }
     if (*pcode < 0) {
         *pcode = (int) strtol( p, &end, 0 );
         if (end != q)