summaryrefslogtreecommitdiffstats
path: root/package/keyutils/keyutils-01-memleak-from-realloc.patch
diff options
context:
space:
mode:
authorYann E. MORIN <yann.morin.1998@free.fr>2012-12-16 06:56:20 +0000
committerPeter Korsgaard <jacmet@sunsite.dk>2012-12-16 21:39:50 +0100
commit90934a3de8364038b05d33b8145fd6d506809a64 (patch)
tree786b8cce2b38aeb20826da79889ebb65e26d492c /package/keyutils/keyutils-01-memleak-from-realloc.patch
parentfd303038febaf7008a1f04262dc5decb32d1cfab (diff)
downloadbuildroot-novena-90934a3de8364038b05d33b8145fd6d506809a64.tar.gz
buildroot-novena-90934a3de8364038b05d33b8145fd6d506809a64.zip
package/keyutils: new package
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Jarkko Sakkinen <jarkko.sakkinen@iki.fi> Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Diffstat (limited to 'package/keyutils/keyutils-01-memleak-from-realloc.patch')
-rw-r--r--package/keyutils/keyutils-01-memleak-from-realloc.patch51
1 files changed, 51 insertions, 0 deletions
diff --git a/package/keyutils/keyutils-01-memleak-from-realloc.patch b/package/keyutils/keyutils-01-memleak-from-realloc.patch
new file mode 100644
index 000000000..0faa9d860
--- /dev/null
+++ b/package/keyutils/keyutils-01-memleak-from-realloc.patch
@@ -0,0 +1,51 @@
+Patch vampirised from Debian's packaging of keyutils-1.4
+
+Author: Michael Gebetsroither <gebi@grml.org>
+Description: Fixed memleak from realloc (Closes: #496466).
+
+diff -Naurp keyutils.orig/keyutils.c keyutils/keyutils.c
+--- keyutils.orig/keyutils.c 2008-08-09 21:46:52.000000000 +0200
++++ keyutils/keyutils.c 2008-08-25 13:38:07.000000000 +0200
+@@ -165,6 +165,24 @@ long keyctl_assume_authority(key_serial_
+ return keyctl(KEYCTL_ASSUME_AUTHORITY, id);
+ }
+
++
++/*****************************************************************************/
++/*
++ * plain realloc is just crazy
++ */
++static void* __xrealloc(void* ptr, size_t size)
++{
++ void* ret;
++
++ ret = realloc(ptr, size);
++ if(!ret) {
++ free(ptr);
++ return 0;
++ }
++ return ret;
++}
++
++
+ /*****************************************************************************/
+ /*
+ * fetch key description into an allocated buffer
+@@ -194,7 +212,7 @@ int keyctl_describe_alloc(key_serial_t i
+ break;
+
+ buflen = ret;
+- buf = realloc(buf, buflen);
++ buf = __xrealloc(buf, buflen);
+ if (!buf)
+ return -1;
+ }
+@@ -233,7 +251,7 @@ int keyctl_read_alloc(key_serial_t id, v
+ break;
+
+ buflen = ret;
+- buf = realloc(buf, buflen + 1);
++ buf = __xrealloc(buf, buflen + 1);
+ if (!buf)
+ return -1;
+ }