aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar netblue30 <netblue30@yahoo.com>2018-10-19 10:51:46 -0400
committerLibravatar netblue30 <netblue30@yahoo.com>2018-10-19 10:51:46 -0400
commitba4ea09a445944d34fcde9b749ebd1f8854cdb66 (patch)
treee2e31cd2d5e762f3825070aa0a2537b7594a5b4a /src
parentset release version 0.9.56 (diff)
downloadfirejail-ba4ea09a445944d34fcde9b749ebd1f8854cdb66.tar.gz
firejail-ba4ea09a445944d34fcde9b749ebd1f8854cdb66.tar.zst
firejail-ba4ea09a445944d34fcde9b749ebd1f8854cdb66.zip
testing
Diffstat (limited to 'src')
-rw-r--r--src/include/ldd_utils.h46
-rw-r--r--src/lib/ldd_utils.c62
2 files changed, 0 insertions, 108 deletions
diff --git a/src/include/ldd_utils.h b/src/include/ldd_utils.h
deleted file mode 100644
index 28f5be7bf..000000000
--- a/src/include/ldd_utils.h
+++ /dev/null
@@ -1,46 +0,0 @@
1/*
2 * Copyright (C) 2014-2018 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 LDD_UTILS_H
22#define LDD_UTILS_H
23
24#include "../include/common.h"
25#include <elf.h>
26
27#ifdef __LP64__
28#define Elf_Ehdr Elf64_Ehdr
29#define Elf_Phdr Elf64_Phdr
30#define Elf_Shdr Elf64_Shdr
31#define Elf_Dyn Elf64_Dyn
32#else
33#define Elf_Ehdr Elf32_Ehdr
34#define Elf_Phdr Elf32_Phdr
35#define Elf_Shdr Elf32_Shdr
36#define Elf_Dyn Elf32_Dyn
37#endif
38
39extern const char * const default_lib_paths[];
40
41// return 1 if this is a 64 bit program/library
42int is_lib_64(const char *exe);
43
44
45
46#endif \ No newline at end of file
diff --git a/src/lib/ldd_utils.c b/src/lib/ldd_utils.c
deleted file mode 100644
index b8a7aeed2..000000000
--- a/src/lib/ldd_utils.c
+++ /dev/null
@@ -1,62 +0,0 @@
1/*
2 * Copyright (C) 2014-2018 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#include "../include/ldd_utils.h"
22#include <sys/types.h>
23#include <sys/stat.h>
24#include <fcntl.h>
25
26const char * const default_lib_paths[] = {
27 "/usr/lib/x86_64-linux-gnu", // Debian & friends
28 "/lib/x86_64-linux-gnu", // CentOS, Fedora
29 "/usr/lib",
30 "/lib",
31 "/lib64",
32 LIBDIR,
33 "/usr/local/lib",
34 "/usr/lib/x86_64-linux-gnu/mesa", // libGL.so is sometimes a symlink into this directory
35 "/usr/lib/x86_64-linux-gnu/mesa-egl", // libGL.so is sometimes a symlink into this directory
36// "/usr/lib/x86_64-linux-gnu/plasma-discover",
37 NULL
38};
39
40// return 1 if this is a 64 bit program/library
41int is_lib_64(const char *exe) {
42 int retval = 0;
43 int fd = open(exe, O_RDONLY);
44 if (fd < 0)
45 return 0;
46
47 unsigned char buf[EI_NIDENT];
48 ssize_t len = 0;
49 while (len < EI_NIDENT) {
50 ssize_t sz = read(fd, buf, EI_NIDENT);
51 if (sz <= 0)
52 goto doexit;
53 len += sz;
54 }
55
56 if (buf[EI_CLASS] == ELFCLASS64)
57 retval = 1;
58
59doexit:
60 close(fd);
61 return retval;
62}