diff options
| -rw-r--r-- | meta/recipes-support/libnl/libnl/0001-fix-double-free-caused-by-freeing-link-af_data-in-rt.patch | 41 | ||||
| -rw-r--r-- | meta/recipes-support/libnl/libnl_3.2.24.bb (renamed from meta/recipes-support/libnl/libnl_3.2.22.bb) | 9 |
2 files changed, 4 insertions, 46 deletions
diff --git a/meta/recipes-support/libnl/libnl/0001-fix-double-free-caused-by-freeing-link-af_data-in-rt.patch b/meta/recipes-support/libnl/libnl/0001-fix-double-free-caused-by-freeing-link-af_data-in-rt.patch deleted file mode 100644 index 6d2c8ff72d..0000000000 --- a/meta/recipes-support/libnl/libnl/0001-fix-double-free-caused-by-freeing-link-af_data-in-rt.patch +++ /dev/null | |||
| @@ -1,41 +0,0 @@ | |||
| 1 | From 6f37b439af7e96104aadd8ec3ae8d3882df8d102 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Jiri Pirko <jiri@resnulli.us> | ||
| 3 | Date: Wed, 21 Aug 2013 14:40:34 +0200 | ||
| 4 | Subject: [PATCH] fix double free caused by freeing link af_data in | ||
| 5 | rtnl_link_set_family() | ||
| 6 | |||
| 7 | Introduced by commit 8026fe2e3a9089eff3f5a06ee6e3cc78d96334ed ("link: | ||
| 8 | Free and realloc af specific data upon rtnl_link_set_family()") | ||
| 9 | |||
| 10 | link->l_af_data[link->l_af_ops->ao_family] is freed here but not set to | ||
| 11 | zero. That leads to double free made by link_free_data->do_foreach_af. | ||
| 12 | |||
| 13 | Fix this by setting link->l_af_data[link->l_af_ops->ao_family] to zero | ||
| 14 | rigth after free. | ||
| 15 | |||
| 16 | Signed-off-by: Jiri Pirko <jiri@resnulli.us> | ||
| 17 | Signed-off-by: Thomas Graf <tgraf@suug.ch> | ||
| 18 | --- | ||
| 19 | lib/route/link.c | 4 +++- | ||
| 20 | 1 file changed, 3 insertions(+), 1 deletion(-) | ||
| 21 | |||
| 22 | diff --git a/lib/route/link.c b/lib/route/link.c | ||
| 23 | index a73e1db..0bb90a0 100644 | ||
| 24 | --- a/lib/route/link.c | ||
| 25 | +++ b/lib/route/link.c | ||
| 26 | @@ -1762,9 +1762,11 @@ void rtnl_link_set_family(struct rtnl_link *link, int family) | ||
| 27 | link->l_family = family; | ||
| 28 | link->ce_mask |= LINK_ATTR_FAMILY; | ||
| 29 | |||
| 30 | - if (link->l_af_ops) | ||
| 31 | + if (link->l_af_ops) { | ||
| 32 | af_free(link, link->l_af_ops, | ||
| 33 | link->l_af_data[link->l_af_ops->ao_family], NULL); | ||
| 34 | + link->l_af_data[link->l_af_ops->ao_family] = NULL; | ||
| 35 | + } | ||
| 36 | |||
| 37 | link->l_af_ops = af_lookup_and_alloc(link, family); | ||
| 38 | } | ||
| 39 | -- | ||
| 40 | 1.8.4 | ||
| 41 | |||
diff --git a/meta/recipes-support/libnl/libnl_3.2.22.bb b/meta/recipes-support/libnl/libnl_3.2.24.bb index a299bfbe7b..d34ab74eac 100644 --- a/meta/recipes-support/libnl/libnl_3.2.22.bb +++ b/meta/recipes-support/libnl/libnl_3.2.24.bb | |||
| @@ -13,11 +13,9 @@ SRC_URI = "http://www.infradead.org/~tgr/${BPN}/files/${BP}.tar.gz \ | |||
| 13 | file://fix-pktloc_syntax_h-race.patch \ | 13 | file://fix-pktloc_syntax_h-race.patch \ |
| 14 | file://fix-pc-file.patch \ | 14 | file://fix-pc-file.patch \ |
| 15 | file://fix-lib-cache_mngr.c-two-parentheses-bugs.patch \ | 15 | file://fix-lib-cache_mngr.c-two-parentheses-bugs.patch \ |
| 16 | file://0001-fix-double-free-caused-by-freeing-link-af_data-in-rt.patch \ | ||
| 17 | " | 16 | " |
| 18 | 17 | SRC_URI[md5sum] = "6e0e7bad0674749d930dd9f285343d55" | |
| 19 | SRC_URI[md5sum] = "2e1c889494d274aca24ce5f6a748e66e" | 18 | SRC_URI[sha256sum] = "fb8d6e5dc8af5b85bc6d00a71582a68a01e6a3f7d1664d4a646e289a99dd6816" |
| 20 | SRC_URI[sha256sum] = "c7c5f267dfeae0c1a530bf96b71fb7c8dbbb07d54beef49b6712d8d6166f629b" | ||
| 21 | 19 | ||
| 22 | inherit autotools-brokensep pkgconfig | 20 | inherit autotools-brokensep pkgconfig |
| 23 | 21 | ||
| @@ -31,11 +29,12 @@ FILES_${PN}-dev += "${libdir}/libnl/cli/*/*.so \ | |||
| 31 | ${libdir}/libnl/cli/*/*.la" | 29 | ${libdir}/libnl/cli/*/*.la" |
| 32 | FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a" | 30 | FILES_${PN}-staticdev += "${libdir}/libnl/cli/*/*.a" |
| 33 | 31 | ||
| 34 | PACKAGES += "${PN}-cli ${PN}-route ${PN}-nf ${PN}-genl" | 32 | PACKAGES += "${PN}-cli ${PN}-route ${PN}-nf ${PN}-genl ${PN}-idiag" |
| 35 | FILES_${PN}-cli = "${libdir}/libnl-cli-3.so.* \ | 33 | FILES_${PN}-cli = "${libdir}/libnl-cli-3.so.* \ |
| 36 | ${libdir}/libnl/cli/*/*.so.* \ | 34 | ${libdir}/libnl/cli/*/*.so.* \ |
| 37 | ${sbindir}/nl-*" | 35 | ${sbindir}/nl-*" |
| 38 | FILES_${PN}-route = "${libdir}/libnl-route-3.so.*" | 36 | FILES_${PN}-route = "${libdir}/libnl-route-3.so.*" |
| 37 | FILES_${PN}-idiag = "${libdir}/libnl-idiag-3.so.*" | ||
| 39 | FILES_${PN}-nf = "${libdir}/libnl-nf-3.so.*" | 38 | FILES_${PN}-nf = "${libdir}/libnl-nf-3.so.*" |
| 40 | FILES_${PN}-genl = "${libdir}/libnl-genl-3.so.* \ | 39 | FILES_${PN}-genl = "${libdir}/libnl-genl-3.so.* \ |
| 41 | ${libdir}/libnl-genl.so.* \ | 40 | ${libdir}/libnl-genl.so.* \ |
