diff options
Diffstat (limited to 'media-video/pipewire/files/pipewire-0.3.38-libcamera-null-deref.patch')
-rw-r--r-- | media-video/pipewire/files/pipewire-0.3.38-libcamera-null-deref.patch | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/media-video/pipewire/files/pipewire-0.3.38-libcamera-null-deref.patch b/media-video/pipewire/files/pipewire-0.3.38-libcamera-null-deref.patch deleted file mode 100644 index beabd1a30291..000000000000 --- a/media-video/pipewire/files/pipewire-0.3.38-libcamera-null-deref.patch +++ /dev/null @@ -1,70 +0,0 @@ -https://gitlab.freedesktop.org/pipewire/pipewire/-/commit/d71a10b7fa9b5c560485b6bbde409c10d3fdd114.patch - -From: Wim Taymans <wtaymans@redhat.com> -Date: Thu, 30 Sep 2021 12:54:29 +0200 -Subject: [PATCH] libcamera: handle failure gracefully - -Don't try to access NULL pointers ---- a/spa/plugins/libcamera/libcamera-client.c -+++ b/spa/plugins/libcamera/libcamera-client.c -@@ -210,10 +210,10 @@ impl_init(const struct spa_handle_factory *factory, - SPA_DEVICE_CHANGE_MASK_PROPS; - this->info.flags = 0; - -- if(this->dev.camera == NULL) { -+ if(this->dev.camera == NULL) - this->dev.camera = (LibCamera*)newLibCamera(); -+ if(this->dev.camera != NULL) - libcamera_set_log(this->dev.camera, this->dev.log); -- } - - return 0; - } ---- a/spa/plugins/libcamera/libcamera-source.c -+++ b/spa/plugins/libcamera/libcamera-source.c -@@ -994,10 +994,10 @@ impl_init(const struct spa_handle_factory *factory, - port->dev.log = this->log; - port->dev.fd = -1; - -- if(port->dev.camera == NULL) { -+ if(port->dev.camera == NULL) - port->dev.camera = (LibCamera*)newLibCamera(); -+ if(port->dev.camera != NULL) - libcamera_set_log(port->dev.camera, port->dev.log); -- } - - if (info && (str = spa_dict_lookup(info, SPA_KEY_API_LIBCAMERA_PATH))) { - strncpy(this->props.device, str, 63); ---- a/spa/plugins/libcamera/libcamera_wrapper.cpp -+++ b/spa/plugins/libcamera/libcamera_wrapper.cpp -@@ -540,7 +540,8 @@ extern "C" { - } - - void LibCamera::close() { -- this->cam_->release(); -+ if (this->cam_) -+ this->cam_->release(); - } - - void LibCamera::connect() -@@ -775,6 +776,9 @@ extern "C" { - std::unique_ptr<CameraManager> cm = std::make_unique<CameraManager>(); - LibCamera* camera = new LibCamera(); - -+ pthread_mutexattr_init(&attr); -+ pthread_mutex_init(&camera->lock, &attr); -+ - ret = cm->start(); - if (ret) { - deleteLibCamera(camera); -@@ -794,9 +798,6 @@ extern "C" { - return nullptr; - } - -- pthread_mutexattr_init(&attr); -- pthread_mutex_init(&camera->lock, &attr); -- - camera->ring_buffer_init(); - - return camera; -GitLab |