[FFmpeg-devel] [PATCH] configure: Fix some unsafe shell practices

libav at airmail.cc libav at airmail.cc
Thu Jul 1 23:03:45 EEST 2021


On 2021-07-01 14:20, Leo Izen wrote:
> This commit fixes some unsafe shell pratcies in ./configure,
> particularly those that involve variable expansions on possibly
> unsanitized data in unsafe ways. This commit corrects this behavior
> in a small number of locations.
> ---
>  configure | 16 ++++++++--------
>  1 file changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/configure b/configure
> index b124411609..dd910f538f 100755
> --- a/configure
> +++ b/configure
> @@ -530,7 +530,7 @@ warn(){
> 
>  die(){
>      log "$@"
> -    echo "$error_color$bold_color$@$reset_color"
> +    echo "$error_color$bold_color$*$reset_color"
>      cat <<EOF
> 
>  If you think configure made a mistake, make sure you are using the 
> latest
> @@ -625,7 +625,7 @@ set_weak(){
>  }
> 
>  sanitize_var_name(){
> -    echo $@ | sed 's/[^A-Za-z0-9_]/_/g'
> +    printf %s "$*" | sed 's/[^A-Za-z0-9_]/_/g'
>  }
> 
>  set_sanitized(){
> @@ -1091,7 +1091,7 @@ check_cmd(){
>      cmd=$1
>      disabled $cmd && return
>      disable $cmd
> -    test_cmd $@ && enable $cmd
> +    test_cmd "$@" && enable $cmd
>  }
> 
>  check_as(){
> @@ -1100,7 +1100,7 @@ check_as(){
>      code=$2
>      shift 2
>      disable $name
> -    test_as $@ <<EOF && enable $name
> +    test_as "$@" <<EOF && enable $name
>  $code
>  EOF
>  }
> @@ -1153,8 +1153,8 @@ test_ld(){
>      log test_ld "$@"
>      type=$1
>      shift 1
> -    flags=$(filter_out '-l*|*.so' $@)
> -    libs=$(filter '-l*|*.so' $@)
> +    flags=$(filter_out '-l*|*.so' "$@")
> +    libs=$(filter '-l*|*.so' "$@")
>      test_$type $($cflags_filter $flags) || return
>      flags=$($ldflags_filter $flags)
>      libs=$($ldflags_filter $libs)
> @@ -1167,7 +1167,7 @@ check_ld(){
>      name=$2
>      shift 2
>      disable $name
> -    test_ld $type $@ && enable $name
> +    test_ld $type "$@" && enable $name
>  }
> 
>  print_include(){
> @@ -7709,7 +7709,7 @@ print_enabled_components(){
>      struct_name=$2
>      name=$3
>      shift 3
> -    echo "static const $struct_name * const $name[] = {" > $TMPH
> +    echo "static const $struct_name * const ${name}[] = {" > $TMPH
>      for c in $*; do
>          if enabled $c; then
>              case $name in
LGTM


More information about the ffmpeg-devel mailing list