Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-15-SP7:GA
brltty
e6707d5e.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File e6707d5e.patch of Package brltty
From e6707d5e094dc36db4319ce4d052a6ad568a5d26 Mon Sep 17 00:00:00 2001 From: Samuel Thibault <samuel.thibault@ens-lyon.org> Date: Tue, 15 Aug 2023 16:29:13 +0200 Subject: [PATCH] brlapi: Fix python crash on connection error MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit From Lukáš Tyrychtr: “ Cython 3.0 started using the new Python object finalization APIs from PEP 442 ” This means that __del__ gets called even when raising an exception from __init__, while it was not before. To cope with both behaviors, we can set self.h to NULL to determine whether it still exists or not. Thanks Lukáš Tyrychtr for the investigation and patch draft! --- Bindings/Python/brlapi.pyx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Bindings/Python/brlapi.pyx b/Bindings/Python/brlapi.pyx index 0136895eaf..af62cc9be0 100644 --- a/Bindings/Python/brlapi.pyx +++ b/Bindings/Python/brlapi.pyx @@ -453,6 +453,7 @@ cdef class Connection: c_brlapi.brlapi_protocolExceptionInit(self.h) if self.fd == -1: c_brlapi.free(self.h) + self.h = NULL raise ConnectionError(self.settings.host, self.settings.auth) def closeConnection(self): @@ -465,7 +466,8 @@ cdef class Connection: """Release resources used by the connection""" if self.fd != -1: c_brlapi.brlapi__closeConnection(self.h) - c_brlapi.free(self.h) + if self.h != NULL: + c_brlapi.free(self.h) property host: """To get authorized to connect, libbrlapi has to tell the BrlAPI server a secret key, for security reasons. This is the path to the file which holds it; it will hence have to be readable by the application."""
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor