diff --git a/meta/packages/attr/attr-2.4.44/double-free.patch b/meta/packages/attr/attr-2.4.44/double-free.patch new file mode 100644 index 0000000000..6fc684f6c2 --- /dev/null +++ b/meta/packages/attr/attr-2.4.44/double-free.patch @@ -0,0 +1,18 @@ +commit 5b28eb3b0e0430ce6af28edc9100ca23299d1218 +Author: Kamil Dudka +Date: Thu Jun 3 15:29:54 2010 +0200 + + attr_parse_attr_conf: eliminate a double free + +diff --git a/libattr/attr_copy_action.c b/libattr/attr_copy_action.c +index 030bbf5..2697328 100644 +--- a/libattr/attr_copy_action.c ++++ b/libattr/attr_copy_action.c +@@ -81,6 +81,7 @@ repeat: + fclose(file); + file = NULL; + free(text); ++ text = NULL; + size_guess *= 2; + goto repeat; + } diff --git a/meta/packages/attr/attr-2.4.44/memory-leak-in-copy.patch b/meta/packages/attr/attr-2.4.44/memory-leak-in-copy.patch new file mode 100644 index 0000000000..966632d87e --- /dev/null +++ b/meta/packages/attr/attr-2.4.44/memory-leak-in-copy.patch @@ -0,0 +1,50 @@ +commit 972b42a67393f762936e74d3ce929914181f5f28 +Author: Brandon Philips +Date: Thu Dec 17 17:15:57 2009 -0800 + + libattr: fix memory leak in attr_copy_action() + + stanse found that attr_copy_action returns before freeing the memory + allocated for text. + + Move fopen() above the malloc so this is not a problem. + + Fixes this bug: + https://bugzilla.novell.com/show_bug.cgi?id=564735 + + Signed-off-by: Brandon Philips + +diff --git a/libattr/attr_copy_action.c b/libattr/attr_copy_action.c +index 0d7aca5..dc94224 100644 +--- a/libattr/attr_copy_action.c ++++ b/libattr/attr_copy_action.c +@@ -53,7 +53,7 @@ free_attr_actions(void) + static int + attr_parse_attr_conf(struct error_context *ctx) + { +- char *text, *t; ++ char *text = NULL, *t; + size_t size_guess = 4096, len; + FILE *file; + char *pattern = NULL; +@@ -64,15 +64,16 @@ attr_parse_attr_conf(struct error_context *ctx) + return 0; + + repeat: +- text = malloc(size_guess + 1); +- if (!text) +- goto fail; +- + if ((file = fopen(ATTR_CONF, "r")) == NULL) { + if (errno == ENOENT) + return 0; + goto fail; + } ++ ++ text = malloc(size_guess + 1); ++ if (!text) ++ goto fail; ++ + len = fread(text, 1, size_guess, file); + if (ferror(file)) + goto fail; diff --git a/meta/packages/attr/attr-2.4.44/memory-leak2.patch b/meta/packages/attr/attr-2.4.44/memory-leak2.patch new file mode 100644 index 0000000000..03395423da --- /dev/null +++ b/meta/packages/attr/attr-2.4.44/memory-leak2.patch @@ -0,0 +1,18 @@ +commit 42f50a130d144ffbc01738f15da9d4f1b57505bd +Author: Kamil Dudka +Date: Thu Jun 3 15:23:04 2010 +0200 + + attr_parse_attr_conf: eliminate a memory leak + +diff --git a/libattr/attr_copy_action.c b/libattr/attr_copy_action.c +index dc94224..030bbf5 100644 +--- a/libattr/attr_copy_action.c ++++ b/libattr/attr_copy_action.c +@@ -129,6 +129,7 @@ repeat: + + t += strcspn(t, "\n"); + } ++ free(text); + return 0; + + parse_error: diff --git a/meta/packages/attr/attr-2.4.44/pull-in-string.h.patch b/meta/packages/attr/attr-2.4.44/pull-in-string.h.patch new file mode 100644 index 0000000000..ccbc236284 --- /dev/null +++ b/meta/packages/attr/attr-2.4.44/pull-in-string.h.patch @@ -0,0 +1,21 @@ +commit 235cdd2af498d288f1af1142e7a23fbd16dff907 +Author: Mike Frysinger +Date: Fri Jan 8 21:53:19 2010 -0500 + + quote: pull in string.h for strchr prototype + + Signed-off-by: Mike Frysinger + Signed-off-by: Brandon Philips + +diff --git a/libmisc/quote.c b/libmisc/quote.c +index f98c887..bf8f9eb 100644 +--- a/libmisc/quote.c ++++ b/libmisc/quote.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include "misc.h" + + const char *quote(const char *str, const char *quote_chars) diff --git a/meta/packages/attr/attr-2.4.44/thinko-in-restore.patch b/meta/packages/attr/attr-2.4.44/thinko-in-restore.patch new file mode 100644 index 0000000000..a84de94ed0 --- /dev/null +++ b/meta/packages/attr/attr-2.4.44/thinko-in-restore.patch @@ -0,0 +1,19 @@ +commit e8d568c696692eed5c92d5a35498e1c26e13d6b3 +Author: Kamil Dudka +Date: Thu Jun 3 15:30:19 2010 +0200 + + setfattr.c: fix thinko in restore() + +diff --git a/setfattr/setfattr.c b/setfattr/setfattr.c +index 491c25a..0a14cfa 100644 +--- a/setfattr/setfattr.c ++++ b/setfattr/setfattr.c +@@ -120,7 +120,7 @@ int restore(const char *filename) + break; + line++; + if (strncmp(l, "# file: ", 8) != 0) { +- if (filename) { ++ if (file != stdin) { + fprintf(stderr, _("%s: %s: No filename found " + "in line %d, aborting\n"), + progname, filename, backup_line); diff --git a/meta/packages/attr/attr.inc b/meta/packages/attr/attr.inc new file mode 100644 index 0000000000..69b7442f7e --- /dev/null +++ b/meta/packages/attr/attr.inc @@ -0,0 +1,51 @@ +DESCRIPTION = "utilities for manipulating filesystem extended attributes" +HOMEPAGE = "http://savannah.nongnu.org/projects/attr/" +SECTION = "libs" + +LICENSE = "LGPLv2.1+ & GPLv2+" +LICENSE_${PN} = "GPLv2+" +LICENSE_lib${PN} = "LGPLv2.1+" +LIC_FILES_CHKSUM = "file://doc/COPYING;md5=2d0aa14b3fce4694e4f615e30186335f \ + file://attr/attr.c;endline=17;md5=be0403261f0847e5f43ed5b08d19593c \ + file://libattr/libattr.c;endline=17;md5=7970f77049f8fa1199fff62a7ab724fb" + +DEPENDS = "gettext" + +SRC_URI = "http://nongnu.askapache.com/attr/${BPN}-${PV}.src.tar.gz" + +inherit autotools + +# the package comes with a custom config.h.in, it cannot be +# overwritten by autoheader +export AUTOHEADER = "true" +EXTRA_OECONF = "INSTALL_USER=root INSTALL_GROUP=root" + +# absolute path will be used in ln -s if PKG_LIB_DIR and +# PKG_DEVLIB_DIR are different +EXTRA_OEMAKE = "PKG_LIB_DIR=${libdir} PKG_DEVLIB_DIR=${libdir}" + +do_install () { + oe_runmake install install-lib install-dev DIST_ROOT="${D}" +} + +PACKAGES = "${PN} ${PN}-doc ${PN}-dbg ${PN}-locale lib${PN} lib${PN}-dev lib${PN}-doc" + +FILES_${PN} = "${bindir}" + +FILES_${PN}-dbg = "${bindir}/.debug" + +FILES_${PN}-doc = "${docdir} \ + ${mandir}/man1 \ + ${mandir}/man5" + +FILES_lib${PN} = "${libdir}/lib*.so.*" + +FILES_lib${PN}-dev = "${includedir} \ + ${libdir}/lib*.so \ + ${libdir}/lib*.a \ + ${libdir}/lib*.la" + +FILES_lib${PN}-doc = "${mandir}/man2 \ + ${mandir}/man3" + +BBCLASSEXTEND = "native" diff --git a/meta/packages/attr/attr_2.4.44.bb b/meta/packages/attr/attr_2.4.44.bb new file mode 100644 index 0000000000..f63d238350 --- /dev/null +++ b/meta/packages/attr/attr_2.4.44.bb @@ -0,0 +1,9 @@ +require attr.inc + +PR = "r0" + +SRC_URI += "file://memory-leak-in-copy.patch \ + file://memory-leak2.patch \ + file://double-free.patch \ + file://pull-in-string.h.patch \ + file://thinko-in-restore.patch"