summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2020-04-01 00:29:36 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2020-04-01 00:40:47 +0900
commit05d19ce7257c92714e44fe9ea2162ec9910a78f2 (patch)
treef133b8afbd4459d437d4b7f2816d60349351d80a
parent27d394630c451a278ceb3861fad5be36d1657564 (diff)
downloadtdenetwork-05d19ce7257c92714e44fe9ea2162ec9910a78f2.tar.gz
tdenetwork-05d19ce7257c92714e44fe9ea2162ec9910a78f2.zip
Fixed FTBFS in recent distros caused by flex arrays usage in kppp.
Based on the suggestion found here: https://github.com/UAVCAN/libuavcan/issues/116#issuecomment-346879320 (thanks!) Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it> Signed-off-by: Slávek Banko <slavek.banko@axis.cz> (cherry picked from commit 01cef504dd23de745b1a7e7096a6dfb1f07f35ae)
-rw-r--r--kppp/opener.cpp8
-rw-r--r--kppp/requester.cpp8
2 files changed, 14 insertions, 2 deletions
diff --git a/kppp/opener.cpp b/kppp/opener.cpp
index 5d90cc0e..7628681b 100644
--- a/kppp/opener.cpp
+++ b/kppp/opener.cpp
@@ -342,7 +342,13 @@ void Opener::mainLoop() {
//
int Opener::sendFD(int fd, struct ResponseHeader *response) {
- struct { struct cmsghdr cmsg; int fd; } control;
+ union {
+ struct {
+ char _cmsg[sizeof(struct cmsghdr)];
+ char data[sizeof(int)]; // int fd field
+ };
+ struct cmsghdr cmsg;
+ } control;
struct msghdr msg;
struct iovec iov;
diff --git a/kppp/requester.cpp b/kppp/requester.cpp
index b5450929..016d72fa 100644
--- a/kppp/requester.cpp
+++ b/kppp/requester.cpp
@@ -80,7 +80,13 @@ Requester::~Requester() {
// Receive file name and file descriptors from envoy
//
int Requester::recvFD() {
- struct { struct cmsghdr cmsg; int fd; } control;
+ union {
+ struct {
+ char _cmsg[sizeof(struct cmsghdr)];
+ char data[sizeof(int)]; // int fd field
+ };
+ struct cmsghdr cmsg;
+ } control;
struct msghdr msg;
struct ResponseHeader response;