From c5c8ca41abb1a9a7c502016946aeffce5ea61c20 Mon Sep 17 00:00:00 2001 From: Amos Jeffries Date: Fri, 23 May 2008 18:36:37 +1200 Subject: [PATCH] Author: Bojan Smojver Bug 2350: Memory allocation problem in restoreCapabilities(), tools.cc Part 2 - Kernel folks are suggesting that the code in tools.cc should test _LINUX_CAPABILITY_VERSION_1 where possible --- src/tools.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/tools.cc b/src/tools.cc index 9b5d141a17..2a136666cf 100644 --- a/src/tools.cc +++ b/src/tools.cc @@ -1360,14 +1360,22 @@ restoreCapabilities(int keep) cap_user_header_t head = (cap_user_header_t) xcalloc(1, sizeof(*head)); cap_user_data_t cap = (cap_user_data_t) xcalloc(1, sizeof(*cap)); +#ifdef _LINUX_CAPABILITY_VERSION_1 + head->version = _LINUX_CAPABILITY_VERSION_1; +#else head->version = _LINUX_CAPABILITY_VERSION; +#endif if (capget(head, cap) != 0) { debugs(50, 1, "Can't get current capabilities"); goto nocap; } +#ifdef _LINUX_CAPABILITY_VERSION_1 + if (head->version != _LINUX_CAPABILITY_VERSION_1) { +#else if (head->version != _LINUX_CAPABILITY_VERSION) { +#endif debugs(50, 1, "Invalid capability version " << head->version << " (expected " << _LINUX_CAPABILITY_VERSION << ")"); goto nocap; } -- 2.47.2