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

Last change on this file since 3625 was 3621, checked in by Bruno Cornec, 10 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.