plug a memory leak

This commit is contained in:
Matthias Clasen 2008-09-19 04:38:29 +00:00
parent f8180a52a0
commit 28c341f8d8
2 changed files with 30 additions and 1 deletions

View File

@ -1,7 +1,7 @@
Summary: library providing high-level API for X Keyboard Extension
Name: libxklavier
Version: 3.7
Release: 1%{?dist}
Release: 2%{?dist}
License: LGPLv2+
Group: Development/Libraries
URL: http://gswitchit.sourceforge.net/
@ -15,6 +15,8 @@ BuildRequires: iso-codes-devel
Source: http://download.gnome.org/sources/libxklavier/3.7/libxklavier-3.7.tar.bz2
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
Patch0: sax-leak.patch
%description
libxklavier is a library providing high-level API for X Keyboard Extension
known as XKB. This library is intended to support XFree86 and other
@ -34,6 +36,7 @@ Libraries, include files, etc you can use to develop libxklavier applications.
%prep
%setup -q
%patch0 -p1 -b .sax-leak
%build
@ -69,6 +72,9 @@ rm -rf %{buildroot}
%{_datadir}/gtk-doc/html/libxklavier/
%changelog
* Fri Sep 19 2008 Matthias Clasen <mclasen@redhat.com> - 3.7-2
- Plug a memory leak
* Fri Sep 5 2008 Matthias Clasen <mclasen@redhat.com> - 3.7-1
- Update to 3.7

23
sax-leak.patch Normal file
View File

@ -0,0 +1,23 @@
diff -up libxklavier-3.7/libxklavier/xklavier_config.c.sax-leak libxklavier-3.7/libxklavier/xklavier_config.c
--- libxklavier-3.7/libxklavier/xklavier_config.c.sax-leak 2008-09-19 00:25:10.000000000 -0400
+++ libxklavier-3.7/libxklavier/xklavier_config.c 2008-09-19 00:25:41.000000000 -0400
@@ -480,15 +480,13 @@ xkl_config_registry_load_from_file(XklCo
const gchar * file_name)
{
xmlParserCtxtPtr ctxt = xmlNewParserCtxt();
- xmlSAXHandler *saxh = g_new0(xmlSAXHandler, 1);
xkl_debug(100, "Loading XML registry from file %s\n", file_name);
/* Filter out all unneeded languages! */
- xmlSAX2InitDefaultSAXHandler(saxh, TRUE);
- saxh->startElementNs = xkl_xml_sax_start_element_ns;
- saxh->endElementNs = xkl_xml_sax_end_element_ns;
- saxh->characters = xkl_xml_sax_characters;
- ctxt->sax = saxh;
+ xmlSAX2InitDefaultSAXHandler(ctxt->sax, TRUE);
+ ctxt->sax->startElementNs = xkl_xml_sax_start_element_ns;
+ ctxt->sax->endElementNs = xkl_xml_sax_end_element_ns;
+ ctxt->sax->characters = xkl_xml_sax_characters;
xkl_config_registry_priv(config, doc) =
xmlCtxtReadFile(ctxt, file_name, NULL, XML_PARSE_NOBLANKS);