]> git.ipfire.org Git - thirdparty/openssl.git/blob - util/find-unused-errs
Detect EOF while reading in libssl
[thirdparty/openssl.git] / util / find-unused-errs
1 #! /bin/bash
2 # Copyright 2016 The OpenSSL Project Authors. All Rights Reserved.
3 #
4 # Licensed under the Apache License 2.0 (the "License"). You may not use
5 # this file except in compliance with the License. You can obtain a copy
6 # in the file LICENSE in the source distribution or at
7 # https://www.openssl.org/source/license.html
8
9 # Find unused error function-names and reason-codes, and edit them
10 # out of the source. Doesn't handle line-wrapping, might have to do
11 # some manual cleanups to fix compile errors.
12
13 export X1=/tmp/f.1.$$
14 export X2=/tmp/f.2.$$
15
16 case "$1" in
17 -f)
18 PAT='_F_'
19 echo Functions only
20 ;;
21 -[er])
22 PAT='_R_'
23 echo Reason codes only
24 ;;
25 "")
26 PAT='_[FR]_'
27 echo Function and reasons
28 ;;
29 *)
30 echo "Usage error; one of -[efr] required."
31 exit 1;
32 ;;
33 esac
34
35 cd include/openssl || exit 1
36 grep "$PAT" * | grep -v ERR_FATAL_ERROR | awk '{print $3;}' | sort -u >$X1
37 cd ../..
38
39 for F in `cat $X1` ; do
40 git grep -l --full-name -F $F >$X2
41 NUM=`wc -l <$X2`
42 test $NUM -gt 2 && continue
43 if grep -q $F crypto/err/openssl.ec ; then
44 echo Possibly unused $F found in openssl.ec
45 continue
46 fi
47 echo $F
48 for FILE in `cat $X2` ; do
49 grep -v -w $F <$FILE >$FILE.new
50 mv $FILE.new $FILE
51 done
52 done
53
54 rm $X1 $X2