mirror of
https://github.com/openharmony/third_party_libevdev.git
synced 2026-07-19 19:23:30 -04:00
!54 merge master into master
close整改 Created-by: mr-liang2504 Commit-by: mr-liang2504 Merged-by: openharmony_ci Description: ### 一、内容说明(相关的Issue) https://gitcode.com/openharmony/third_party_libevdev/issues/29 ### 二、建议测试周期和提测地址 建议测试完成时间:xxxx.xx.xx 投产上线时间:xxxx.xx.xx 提测地址:CI环境/压测环境 测试账号: ### 三、变更内容 * 3.1 关联PR列表 * 3.2 数据库和部署说明 1. 常规更新 2. 重启unicorn 3. 重启sidekiq 4. 迁移任务:是否有迁移任务,没有写 "无" 5. rake脚本:`bundle exec xxx RAILS_ENV = production`;没有写 "无" * 3.4 其他技术优化内容(做了什么,变更了什么) - 重构了 xxxx 代码 - xxxx 算法优化 * 3.5 废弃通知(什么字段、方法弃用?) * 3.6 后向不兼容变更(是否有无法向后兼容的变更?) ### 四、研发自测点(自测哪些?冒烟用例全部自测?) 自测测试结论: ### 五、测试关注点(需要提醒QA重点关注的、可能会忽略的地方) 检查点: | 需求名称 | 是否影响xx公共模块 | 是否需要xx功能 | 需求升级是否依赖其他子产品 | |------|------------|----------|---------------| | xxx | 否 | 需要 | 不需要 | | | | | | 接口测试: 性能测试: 并发测试: 其他: See merge request: openharmony/third_party_libevdev!54
This commit is contained in:
@@ -135,7 +135,65 @@ limitations under the License.
|
||||
|
||||
-#endif /* _INPUT_H */
|
||||
+#endif /* _UAPI_INPUT_H */
|
||||
|
||||
--- a/libevdev/libevdev-uinput.c
|
||||
+++ b/libevdev/libevdev-uinput.c
|
||||
@@ -29,6 +29,8 @@
|
||||
#define UI_SET_PROPBIT _IOW(UINPUT_IOCTL_BASE, 110, int)
|
||||
#endif
|
||||
|
||||
+static const uint64_t FDSAN_NEW_TAG = 0xD002800;
|
||||
+
|
||||
static struct libevdev_uinput *
|
||||
alloc_uinput_device(const char *name)
|
||||
{
|
||||
@@ -261,17 +263,17 @@ fetch_syspath_and_devnode(struct libevdev_uinput *uinput_dev)
|
||||
fd = open(buf, O_RDONLY);
|
||||
if (fd < 0)
|
||||
continue;
|
||||
-
|
||||
+ fdsan_exchange_owner_tag(fd, 0, FDSAN_NEW_TAG);
|
||||
/* created before UI_DEV_CREATE, or after it finished */
|
||||
if (fstat(fd, &st) == -1 ||
|
||||
st.st_ctime < uinput_dev->ctime[0] ||
|
||||
st.st_ctime > uinput_dev->ctime[1]) {
|
||||
- close(fd);
|
||||
+ fdsan_close_with_tag(fd, FDSAN_NEW_TAG);
|
||||
continue;
|
||||
}
|
||||
|
||||
len = read(fd, buf, sizeof(buf));
|
||||
- close(fd);
|
||||
+ fdsan_close_with_tag(fd, FDSAN_NEW_TAG);
|
||||
if (len <= 0)
|
||||
continue;
|
||||
|
||||
@@ -382,7 +384,7 @@ libevdev_uinput_create_from_device(const struct libevdev *dev, int fd, struct li
|
||||
fd = open("/dev/uinput", O_RDWR|O_CLOEXEC);
|
||||
if (fd < 0)
|
||||
goto error;
|
||||
-
|
||||
+ fdsan_exchange_owner_tag(fd, 0, FDSAN_NEW_TAG);
|
||||
new_device->fd_is_managed = 1;
|
||||
} else if (fd < 0) {
|
||||
log_bug(NULL, "Invalid fd %d\n", fd);
|
||||
@@ -429,7 +431,7 @@ error:
|
||||
rc = -errno;
|
||||
libevdev_uinput_destroy(new_device);
|
||||
if (fd != -1 && close_fd_on_error)
|
||||
- close(fd);
|
||||
+ fdsan_close_with_tag(fd, FDSAN_NEW_TAG);
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -442,7 +444,7 @@ libevdev_uinput_destroy(struct libevdev_uinput *uinput_dev)
|
||||
if (uinput_dev->fd >= 0) {
|
||||
(void)ioctl(uinput_dev->fd, UI_DEV_DESTROY, NULL);
|
||||
if (uinput_dev->fd_is_managed)
|
||||
- close(uinput_dev->fd);
|
||||
+ fdsan_close_with_tag(uinput_dev->fd, FDSAN_NEW_TAG);
|
||||
}
|
||||
free(uinput_dev->syspath);
|
||||
free(uinput_dev->devnode);
|
||||
--- a/libevdev/libevdev-util.h
|
||||
+++ b/libevdev/libevdev-util.h
|
||||
@@ -42,19 +42,19 @@ startswith(const char *str, size_t len, const char *prefix, size_t plen)
|
||||
|
||||
Reference in New Issue
Block a user