Code: bool semaphore_try_wait(semaphore_t *semaphore) {

   assert(semaphore != NULL);
   assert(semaphore->fd != INVALID_FD);
 
  int flags = fcntl(semaphore->fd, F_GETFL);
   if (flags == -1) {
     LOG_ERROR("%s unable to get flags for semaphore fd: %s", __func__, strerror(errno));
     return false;
   }
  if (fcntl(semaphore->fd, F_SETFL, flags | O_NONBLOCK) == -1) {
     LOG_ERROR("%s unable to set O_NONBLOCK for semaphore fd: %s", __func__, strerror(errno));
     return false;
   }

 eventfd_t value;

   if (eventfd_read(semaphore->fd, &value) == -1)
     return false;
 
  if (fcntl(semaphore->fd, F_SETFL, flags) == -1)
     LOG_ERROR("%s unable to resetore flags for semaphore fd: %s", __func__, strerror(errno));
   return true;
 }

Vulnerability Type: DoS 
CWE ID: CWE-284
Summary: Bluetooth in Android 4.x before 4.4.4, 5.0.x before 5.0.2, 5.1.x before 5.1.1, and 6.x before 2016-08-01 allows attackers to cause a denial of service (loss of Bluetooth 911 functionality) via a crafted application that sends a signal to a Bluetooth process, aka internal bug 28885210.
Commit Message: DO NOT MERGE Fix potential DoS caused by delivering signal to BT process

Bug: 28885210
Change-Id: I63866d894bfca47464d6e42e3fb0357c4f94d360

 Conflicts:
	btif/co/bta_hh_co.c
	btif/src/btif_core.c
Merge conflict resolution of ag/1161415 (referencing ag/1164670)
- Directly into mnc-mr2-release
