source: MondoRescue/branches/3.3/mindi-busybox/applets/busybox.mksuid@ 3621

Last change on this file since 3621 was 3621, checked in by Bruno Cornec, 7 years ago

New 3?3 banch for incorporation of latest busybox 1.25. Changing minor version to handle potential incompatibilities.

  • Property svn:executable set to *
File size: 1.3 KB
Line 
1#!/bin/sh
2# Make list of configuration variables regarding suid handling
3
4# input $1: full path to autoconf.h
5# input $2: full path to applets.h
6# input $3: full path to .config
7# output (stdout): list of CONFIG_ that do or may require suid
8
9# If the environment variable SUID is not set or set to DROP,
10# lists all config options that do not require suid permissions.
11# Otherwise, lists all config options for applets that DO or MAY require
12# suid permissions.
13
14# Maintainer: Bernhard Reutner-Fischer
15
16export LC_ALL=POSIX
17export LC_CTYPE=POSIX
18
19CONFIG_H=${1:-include/autoconf.h}
20APPLETS_H=${2:-include/applets.h}
21DOT_CONFIG=${3:-.config}
22
23case ${SUID:-DROP} in
24[dD][rR][oO][pP]) USE="DROP" ;;
25*) USE="suid" ;;
26esac
27
28$HOSTCC -E -DMAKE_SUID -include $CONFIG_H $APPLETS_H |
29 awk -v USE=${USE} '
30 /^SUID[ \t]/{
31 if (USE == "DROP") {
32 if ($2 != "BB_SUID_DROP") next
33 } else {
34 if ($2 == "BB_SUID_DROP") next
35 }
36 cfg = $NF
37 gsub("\"", "", cfg)
38 cfg = substr(cfg, 8)
39 s[i++] = "CONFIG_" cfg
40 s[i++] = "CONFIG_FEATURE_" cfg "_.*"
41 }
42 END{
43 while (getline < ARGV[2]) {
44 for (j in s) {
45 if ($0 ~ "^" s[j] "=y$") {
46 sub(/=.*/, "")
47 print
48 if (s[j] !~ /\*$/) delete s[j] # can drop this applet now
49 }
50 }
51 }
52 }
53' - $DOT_CONFIG
54
Note: See TracBrowser for help on using the repository browser.