Loading drivers/char/diag/diagchar_core.c +13 −2 Original line number Diff line number Diff line Loading @@ -306,6 +306,14 @@ static int diagchar_open(struct inode *inode, struct file *file) if (driver) { mutex_lock(&driver->diagchar_mutex); for (i = 0; i < driver->num_clients; i++) { if (driver->client_map[i].pid == current->tgid) { pr_err_ratelimited("diag: Client already present current->tgid: %d\n", current->tgid); mutex_unlock(&driver->diagchar_mutex); return -EEXIST; } } for (i = 0; i < driver->num_clients; i++) if (driver->client_map[i].pid == 0) break; Loading Loading @@ -3623,9 +3631,12 @@ static ssize_t diagchar_read(struct file *file, char __user *buf, size_t count, int proc = 0; mutex_lock(&driver->diagchar_mutex); for (i = 0; i < driver->num_clients; i++) if (driver->client_map[i].pid == current->tgid) for (i = 0; i < driver->num_clients; i++) { if (driver->client_map[i].pid == current->tgid) { index = i; break; } } mutex_unlock(&driver->diagchar_mutex); if (index == -1) { Loading Loading
drivers/char/diag/diagchar_core.c +13 −2 Original line number Diff line number Diff line Loading @@ -306,6 +306,14 @@ static int diagchar_open(struct inode *inode, struct file *file) if (driver) { mutex_lock(&driver->diagchar_mutex); for (i = 0; i < driver->num_clients; i++) { if (driver->client_map[i].pid == current->tgid) { pr_err_ratelimited("diag: Client already present current->tgid: %d\n", current->tgid); mutex_unlock(&driver->diagchar_mutex); return -EEXIST; } } for (i = 0; i < driver->num_clients; i++) if (driver->client_map[i].pid == 0) break; Loading Loading @@ -3623,9 +3631,12 @@ static ssize_t diagchar_read(struct file *file, char __user *buf, size_t count, int proc = 0; mutex_lock(&driver->diagchar_mutex); for (i = 0; i < driver->num_clients; i++) if (driver->client_map[i].pid == current->tgid) for (i = 0; i < driver->num_clients; i++) { if (driver->client_map[i].pid == current->tgid) { index = i; break; } } mutex_unlock(&driver->diagchar_mutex); if (index == -1) { Loading