summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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.patch70
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