ports/x11-drivers/xf86-input-acecad/files/patch-git_10_2f1a5b4
Baptiste Daroussin 1810e8dcb7 Import few patches from upstream to allow building with newer xorg
Note that those drivers are barely maintained and might disappear in the futur

PR:		216270
Submitted by:	matthew@reztek.cz
2017-01-23 22:22:53 +00:00

72 lines
1.8 KiB
Text

From 2f1a5b44f62028f2608c0c94e58154df09e9ada3 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue, 19 Jul 2011 14:13:33 +1000
Subject: Don't free anything in PreInit, provide an UnInit instead.
Also fixes:
- leaking priv->buffer
- fd closure bug
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
diff --git a/src/acecad.c b/src/acecad.c
index a3326a0..6a0b347 100644
--- src/acecad.c
+++ src/acecad.c
@@ -126,7 +126,7 @@ _X_EXPORT InputDriverRec ACECAD =
"acecad",
NULL,
AceCadPreInit,
- NULL,
+ AceCadUnInit,
NULL,
default_options
};
@@ -462,16 +462,26 @@ AceCadPreInit(InputDriverPtr drv, InputInfoPtr local, int flags)
* If something went wrong, cleanup and return NULL
*/
SetupProc_fail:
- if ((local) && (local->fd))
+ return BadAlloc;
+}
+
+static void
+AceCadUnInit(InputDriverPtr drv, InputInfoPtr local, int flags)
+{
+ AceCadPrivatePtr priv = (AceCadPrivatePtr) (local->private);
+
+ if (local->fd > -1)
+ {
xf86CloseSerial (local->fd);
- if ((priv) && (priv->buffer))
- XisbFree (priv->buffer);
+ local->fd = -1;
+ }
+
if (priv) {
+ if (priv->buffer)
+ XisbFree (priv->buffer);
free (priv);
- if (local)
- local->private = NULL;
+ local->private = NULL;
}
- return BadAlloc;
}
static Bool
diff --git a/src/acecad.h b/src/acecad.h
index b9291c7..48fa38a 100644
--- src/acecad.h
+++ src/acecad.h
@@ -106,6 +106,7 @@ static Bool QueryHardware (AceCadPrivatePtr);
static void NewPacket (AceCadPrivatePtr priv);
static Bool AceCadGetPacket (AceCadPrivatePtr);
static int AceCadPreInit(InputDriverPtr, InputInfoPtr , int);
+static void AceCadUnInit(InputDriverPtr, InputInfoPtr , int);
#ifdef HAVE_LINUX_INPUT_H
static void USBReadInput (InputInfoPtr);
static Bool USBQueryHardware (InputInfoPtr);
--
cgit v0.10.2