Camera3: Fix invalid file description check
0 is a valid file descriptor. Fix the code for checking valid file descriptor. This is a precautionary change. Bug: 17113762 Change-Id: I65b206254eb63d888049b6daf650204b13afa444 Signed-off-by: Daniel Jarai <jaraidaniel@gmail.com>
This commit is contained in:
parent
189f07281e
commit
480867917e
|
@ -326,7 +326,7 @@ int QCamera3HeapMemory::allocOneBuffer(QCamera3MemInfo &memInfo, int heap_id, in
|
|||
int main_ion_fd = 0;
|
||||
|
||||
main_ion_fd = open("/dev/ion", O_RDONLY);
|
||||
if (main_ion_fd <= 0) {
|
||||
if (main_ion_fd < 0) {
|
||||
ALOGE("Ion dev open failed: %s\n", strerror(errno));
|
||||
goto ION_OPEN_FAILED;
|
||||
}
|
||||
|
|
|
@ -254,7 +254,7 @@ int32_t mm_camera_open(mm_camera_obj_t *my_obj)
|
|||
n_try--;
|
||||
my_obj->ctrl_fd = open(dev_name, O_RDWR | O_NONBLOCK);
|
||||
CDBG("%s: ctrl_fd = %d, errno == %d", __func__, my_obj->ctrl_fd, errno);
|
||||
if((my_obj->ctrl_fd > 0) || (errno != EIO) || (n_try <= 0 )) {
|
||||
if((my_obj->ctrl_fd >= 0) || (errno != EIO) || (n_try <= 0 )) {
|
||||
CDBG_HIGH("%s: opened, break out while loop", __func__);
|
||||
break;
|
||||
}
|
||||
|
@ -263,7 +263,7 @@ int32_t mm_camera_open(mm_camera_obj_t *my_obj)
|
|||
usleep(sleep_msec * 1000);
|
||||
}while (n_try > 0);
|
||||
|
||||
if (my_obj->ctrl_fd <= 0) {
|
||||
if (my_obj->ctrl_fd < 0) {
|
||||
CDBG_ERROR("%s: cannot open control fd of '%s' (%s)\n",
|
||||
__func__, dev_name, strerror(errno));
|
||||
rc = -1;
|
||||
|
@ -276,7 +276,7 @@ int32_t mm_camera_open(mm_camera_obj_t *my_obj)
|
|||
n_try--;
|
||||
my_obj->ds_fd = mm_camera_socket_create(cam_idx, MM_CAMERA_SOCK_TYPE_UDP);
|
||||
CDBG("%s: ds_fd = %d, errno = %d", __func__, my_obj->ds_fd, errno);
|
||||
if((my_obj->ds_fd > 0) || (n_try <= 0 )) {
|
||||
if((my_obj->ds_fd >= 0) || (n_try <= 0 )) {
|
||||
CDBG("%s: opened, break out while loop", __func__);
|
||||
break;
|
||||
}
|
||||
|
@ -285,7 +285,7 @@ int32_t mm_camera_open(mm_camera_obj_t *my_obj)
|
|||
usleep(sleep_msec * 1000);
|
||||
} while (n_try > 0);
|
||||
|
||||
if (my_obj->ds_fd <= 0) {
|
||||
if (my_obj->ds_fd < 0) {
|
||||
CDBG_ERROR("%s: cannot open domain socket fd of '%s'(%s)\n",
|
||||
__func__, dev_name, strerror(errno));
|
||||
rc = -1;
|
||||
|
@ -315,13 +315,13 @@ int32_t mm_camera_open(mm_camera_obj_t *my_obj)
|
|||
return rc;
|
||||
|
||||
on_error:
|
||||
if (my_obj->ctrl_fd > 0) {
|
||||
if (my_obj->ctrl_fd >= 0) {
|
||||
close(my_obj->ctrl_fd);
|
||||
my_obj->ctrl_fd = 0;
|
||||
my_obj->ctrl_fd = -1;
|
||||
}
|
||||
if (my_obj->ds_fd > 0) {
|
||||
if (my_obj->ds_fd >= 0) {
|
||||
mm_camera_socket_close(my_obj->ds_fd);
|
||||
my_obj->ds_fd = 0;
|
||||
my_obj->ds_fd = -1;
|
||||
}
|
||||
|
||||
/* we do not need to unlock cam_lock here before return
|
||||
|
@ -354,13 +354,13 @@ int32_t mm_camera_close(mm_camera_obj_t *my_obj)
|
|||
CDBG("%s : Close evt cmd Thread in Cam Close",__func__);
|
||||
mm_camera_cmd_thread_release(&my_obj->evt_thread);
|
||||
|
||||
if(my_obj->ctrl_fd > 0) {
|
||||
if(my_obj->ctrl_fd >= 0) {
|
||||
close(my_obj->ctrl_fd);
|
||||
my_obj->ctrl_fd = 0;
|
||||
my_obj->ctrl_fd = -1;
|
||||
}
|
||||
if(my_obj->ds_fd > 0) {
|
||||
if(my_obj->ds_fd >= 0) {
|
||||
mm_camera_socket_close(my_obj->ds_fd);
|
||||
my_obj->ds_fd = 0;
|
||||
my_obj->ds_fd = -1;
|
||||
}
|
||||
pthread_mutex_destroy(&my_obj->msg_lock);
|
||||
|
||||
|
|
|
@ -708,6 +708,7 @@ uint32_t mm_channel_add_stream(mm_channel_t *my_obj)
|
|||
|
||||
/* initialize stream object */
|
||||
memset(stream_obj, 0, sizeof(mm_stream_t));
|
||||
stream_obj->fd = -1;
|
||||
stream_obj->my_hdl = mm_camera_util_generate_handler(idx);
|
||||
stream_obj->ch_obj = my_obj;
|
||||
pthread_mutex_init(&stream_obj->buf_lock, NULL);
|
||||
|
|
|
@ -1258,7 +1258,7 @@ uint8_t get_num_of_cameras()
|
|||
int num_entities;
|
||||
snprintf(dev_name, sizeof(dev_name), "/dev/media%d", num_media_devices);
|
||||
dev_fd = open(dev_name, O_RDWR | O_NONBLOCK);
|
||||
if (dev_fd <= 0) {
|
||||
if (dev_fd < 0) {
|
||||
CDBG("Done discovering media devices\n");
|
||||
break;
|
||||
}
|
||||
|
@ -1268,14 +1268,14 @@ uint8_t get_num_of_cameras()
|
|||
if (rc < 0) {
|
||||
CDBG_ERROR("Error: ioctl media_dev failed: %s\n", strerror(errno));
|
||||
close(dev_fd);
|
||||
dev_fd = 0;
|
||||
dev_fd = -1;
|
||||
num_cameras = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
if(strncmp(mdev_info.model, MSM_CAMERA_NAME, sizeof(mdev_info.model)) != 0) {
|
||||
close(dev_fd);
|
||||
dev_fd = 0;
|
||||
dev_fd = -1;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -1302,7 +1302,7 @@ uint8_t get_num_of_cameras()
|
|||
|
||||
num_cameras++;
|
||||
close(dev_fd);
|
||||
dev_fd = 0;
|
||||
dev_fd = -1;
|
||||
}
|
||||
g_cam_ctrl.num_cam = num_cameras;
|
||||
|
||||
|
@ -1386,6 +1386,8 @@ mm_camera_vtbl_t * camera_open(uint8_t camera_idx)
|
|||
|
||||
/* initialize camera obj */
|
||||
memset(cam_obj, 0, sizeof(mm_camera_obj_t));
|
||||
cam_obj->ctrl_fd = -1;
|
||||
cam_obj->ds_fd = -1;
|
||||
cam_obj->ref_count++;
|
||||
cam_obj->my_hdl = mm_camera_util_generate_handler(camera_idx);
|
||||
cam_obj->vtbl.camera_handle = cam_obj->my_hdl; /* set handler */
|
||||
|
|
|
@ -411,7 +411,7 @@ int32_t mm_stream_fsm_inited(mm_stream_t *my_obj,
|
|||
mm_camera_util_get_dev_name(my_obj->ch_obj->cam_obj->my_hdl));
|
||||
|
||||
my_obj->fd = open(dev_name, O_RDWR | O_NONBLOCK);
|
||||
if (my_obj->fd <= 0) {
|
||||
if (my_obj->fd < 0) {
|
||||
CDBG_ERROR("%s: open dev returned %d\n", __func__, my_obj->fd);
|
||||
rc = -1;
|
||||
break;
|
||||
|
@ -424,7 +424,7 @@ int32_t mm_stream_fsm_inited(mm_stream_t *my_obj,
|
|||
/* failed setting ext_mode
|
||||
* close fd */
|
||||
close(my_obj->fd);
|
||||
my_obj->fd = 0;
|
||||
my_obj->fd = -1;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
@ -845,7 +845,7 @@ int32_t mm_stream_release(mm_stream_t *my_obj)
|
|||
__func__, my_obj->my_hdl, my_obj->fd, my_obj->state);
|
||||
|
||||
/* close fd */
|
||||
if(my_obj->fd > 0)
|
||||
if(my_obj->fd >= 0)
|
||||
{
|
||||
close(my_obj->fd);
|
||||
}
|
||||
|
@ -856,6 +856,7 @@ int32_t mm_stream_release(mm_stream_t *my_obj)
|
|||
|
||||
/* reset stream obj */
|
||||
memset(my_obj, 0, sizeof(mm_stream_t));
|
||||
my_obj->fd = -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -494,8 +494,8 @@ int32_t mm_camera_poll_thread_launch(mm_camera_poll_thread_t * poll_cb,
|
|||
|
||||
poll_cb->poll_type = poll_type;
|
||||
|
||||
poll_cb->pfds[0] = 0;
|
||||
poll_cb->pfds[1] = 0;
|
||||
poll_cb->pfds[0] = -1;
|
||||
poll_cb->pfds[1] = -1;
|
||||
rc = pipe(poll_cb->pfds);
|
||||
if(rc < 0) {
|
||||
CDBG_ERROR("%s: pipe open rc=%d\n", __func__, rc);
|
||||
|
@ -544,10 +544,10 @@ int32_t mm_camera_poll_thread_release(mm_camera_poll_thread_t *poll_cb)
|
|||
}
|
||||
|
||||
/* close pipe */
|
||||
if(poll_cb->pfds[0]) {
|
||||
if(poll_cb->pfds[0] >= 0) {
|
||||
close(poll_cb->pfds[0]);
|
||||
}
|
||||
if(poll_cb->pfds[1]) {
|
||||
if(poll_cb->pfds[1] >= 0) {
|
||||
close(poll_cb->pfds[1]);
|
||||
}
|
||||
|
||||
|
@ -556,6 +556,8 @@ int32_t mm_camera_poll_thread_release(mm_camera_poll_thread_t *poll_cb)
|
|||
memset(poll_cb, 0, sizeof(mm_camera_poll_thread_t));
|
||||
done:
|
||||
pthread_mutex_unlock(&constr_destr_lock);
|
||||
poll_cb->pfds[0] = -1;
|
||||
poll_cb->pfds[1] = -1;
|
||||
return rc;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue