Deal correctly with short strings

The parseMacAddress function anticipates only properly formed
MAC addresses (6 hexadecimal octets separated by ":").  This
change properly deals with situations where the string is
shorter than expected, making sure that the passed in char*
reference in parseHexByte never exceeds the end of the string.

BUG: 28164077
TEST: Added a main function:

int main(int argc, char **argv) {
   unsigned char addr[6];
   if (argc > 1) {
      memset(addr, 0, sizeof(addr));
      parseMacAddress(argv[1], addr);
      printf("Result: %02x:%02x:%02x:%02x:%02x:%02x\n",
              addr[0], addr[1], addr[2], addr[3], addr[4], addr[5]);
   }
}

Tested with "", "a" "ab" "ab:c" "abxc".

Change-Id: I0db8d0037e48b62333d475296a45b22ab0efe386

static void onFullScanResult(wifi_request_id id, wifi_scan_result *result) {

 JNIHelper helper(mVM);


 JNIObject<jobject> scanResult = createScanResult(helper, result);


 JNIObject<jbyteArray> elements = helper.newByteArray(result->ie_length);
 if (elements == NULL) {
        ALOGE("Error in allocating array");
 return;
 }


    jbyte *bytes = (jbyte *)&(result->ie_data[0]);
    helper.setByteArrayRegion(elements, 0, result->ie_length, bytes);


    helper.reportEvent(mCls, "onFullScanResult", "(ILandroid/net/wifi/ScanResult;[B)V", id,
            scanResult.get(), elements.get());
}

static void onFullScanResult(wifi_request_id id, wifi_scan_result *result) {

 JNIHelper helper(mVM);


 JNIObject<jobject> scanResult = createScanResult(helper, result);


 JNIObject<jbyteArray> elements = helper.newByteArray(result->ie_length);
 if (elements == NULL) {
        ALOGE("Error in allocating array");
 return;
 }


    jbyte *bytes = (jbyte *)&(result->ie_data[0]);
    helper.setByteArrayRegion(elements, 0, result->ie_length, bytes);


    helper.reportEvent(mCls, "onFullScanResult", "(ILandroid/net/wifi/ScanResult;[B)V", id,
            scanResult.get(), elements.get());
}
