aboutsummaryrefslogtreecommitdiffstats
path: root/src/libtrace
diff options
context:
space:
mode:
authorLibravatar Duncaen <mail@duncano.de>2015-10-25 14:37:11 +0100
committerLibravatar Duncaen <mail@duncano.de>2015-10-25 14:37:11 +0100
commitd49889d24686fff901392b6dd1f9c6a5214e8464 (patch)
tree3e9e40cad8a5cf976c331e850e6c423f24e0d1ae /src/libtrace
parentfix struct stat64 problem for musl libc (diff)
downloadfirejail-d49889d24686fff901392b6dd1f9c6a5214e8464.tar.gz
firejail-d49889d24686fff901392b6dd1f9c6a5214e8464.tar.zst
firejail-d49889d24686fff901392b6dd1f9c6a5214e8464.zip
Revert "fix struct stat64 problem for musl libc"
Diffstat (limited to 'src/libtrace')
-rw-r--r--src/libtrace/Makefile.in3
-rw-r--r--src/libtrace/libtrace.c14
-rw-r--r--src/libtrace/musl_defs.h52
3 files changed, 1 insertions, 68 deletions
diff --git a/src/libtrace/Makefile.in b/src/libtrace/Makefile.in
index 8bc57cddf..3924bdf3f 100644
--- a/src/libtrace/Makefile.in
+++ b/src/libtrace/Makefile.in
@@ -2,13 +2,12 @@ PREFIX=@prefix@
2VERSION=@PACKAGE_VERSION@ 2VERSION=@PACKAGE_VERSION@
3NAME=@PACKAGE_NAME@ 3NAME=@PACKAGE_NAME@
4HAVE_FATAL_WARNINGS=@HAVE_FATAL_WARNINGS@ 4HAVE_FATAL_WARNINGS=@HAVE_FATAL_WARNINGS@
5HAVE_MUSL_LIBC=@HAVE_MUSL_LIBC@
6 5
7H_FILE_LIST = $(wildcard *.[h]) 6H_FILE_LIST = $(wildcard *.[h])
8C_FILE_LIST = $(wildcard *.c) 7C_FILE_LIST = $(wildcard *.c)
9OBJS = $(C_FILE_LIST:.c=.o) 8OBJS = $(C_FILE_LIST:.c=.o)
10BINOBJS = $(foreach file, $(OBJS), $file) 9BINOBJS = $(foreach file, $(OBJS), $file)
11CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' $(HAVE_MUSL_LIBC) -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIC -Wformat -Wformat-security 10CFLAGS += -ggdb $(HAVE_FATAL_WARNINGS) -O2 -DVERSION='"$(VERSION)"' -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIC -Wformat -Wformat-security
12LDFLAGS += -pie -Wl,-z,relro -Wl,-z,now 11LDFLAGS += -pie -Wl,-z,relro -Wl,-z,now
13 12
14all: libtrace.so 13all: libtrace.so
diff --git a/src/libtrace/libtrace.c b/src/libtrace/libtrace.c
index 2ce74d331..1eb1cf931 100644
--- a/src/libtrace/libtrace.c
+++ b/src/libtrace/libtrace.c
@@ -18,11 +18,7 @@
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/ 19*/
20#define _GNU_SOURCE 20#define _GNU_SOURCE
21#ifdef HAVE_MUSL_LIBC
22#include "musl_defs.h"
23#else
24#include <stdio.h> 21#include <stdio.h>
25#endif
26#include <stdlib.h> 22#include <stdlib.h>
27#include <string.h> 23#include <string.h>
28#include <dlfcn.h> 24#include <dlfcn.h>
@@ -32,9 +28,7 @@
32#include <netinet/in.h> 28#include <netinet/in.h>
33#include <arpa/inet.h> 29#include <arpa/inet.h>
34#include <sys/un.h> 30#include <sys/un.h>
35#ifndef HAVE_MUSL_LIBC
36#include <sys/stat.h> 31#include <sys/stat.h>
37#endif
38 32
39// break recursivity on fopen call 33// break recursivity on fopen call
40typedef FILE *(*orig_fopen_t)(const char *pathname, const char *mode); 34typedef FILE *(*orig_fopen_t)(const char *pathname, const char *mode);
@@ -420,17 +414,9 @@ int stat(const char *pathname, struct stat *buf) {
420 return rv; 414 return rv;
421} 415}
422 416
423#ifdef HAVE_MUSL_LIBC
424typedef int (*orig_stat64_t)(const char *pathname, struct stat *buf);
425#else
426typedef int (*orig_stat64_t)(const char *pathname, struct stat64 *buf); 417typedef int (*orig_stat64_t)(const char *pathname, struct stat64 *buf);
427#endif
428static orig_stat64_t orig_stat64 = NULL; 418static orig_stat64_t orig_stat64 = NULL;
429#ifdef HAVE_MUSL_LIBC
430int stat64(const char *pathname, struct stat *buf) {
431#else
432int stat64(const char *pathname, struct stat64 *buf) { 419int stat64(const char *pathname, struct stat64 *buf) {
433#endif
434 if (!orig_stat) 420 if (!orig_stat)
435 orig_stat64 = (orig_stat64_t)dlsym(RTLD_NEXT, "stat"); 421 orig_stat64 = (orig_stat64_t)dlsym(RTLD_NEXT, "stat");
436 422
diff --git a/src/libtrace/musl_defs.h b/src/libtrace/musl_defs.h
deleted file mode 100644
index 02eb65b83..000000000
--- a/src/libtrace/musl_defs.h
+++ /dev/null
@@ -1,52 +0,0 @@
1/*
2 * Copyright (C) 2014, 2015 Firejail Authors
3 *
4 * This file is part of firejail project
5 *
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License along
17 * with this program; if not, write to the Free Software Foundation, Inc.,
18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19*/
20
21#ifndef _MUSL_DEFS_H
22#define _MUSL_DEFS_H
23
24#include <features.h>
25
26#define __NEED_FILE
27#define __NEED_dev_t
28#define __NEED_ino_t
29#define __NEED_mode_t
30#define __NEED_nlink_t
31#define __NEED_uid_t
32#define __NEED_gid_t
33#define __NEED_off_t
34#define __NEED_time_t
35#define __NEED_blksize_t
36#define __NEED_blkcnt_t
37#define __NEED_struct_timespec
38
39#include <bits/alltypes.h>
40#include <bits/stat.h>
41
42#ifdef __cplusplus
43#define NULL 0L
44#else
45#define NULL ((void*)0)
46#endif
47
48int printf(const char *format, ...);
49int sprintf(char *buffer, const char *format, ...);
50char *fgets(char *buffer, int size, FILE *fp);
51
52#endif