mirror of
				https://github.com/drwetter/testssl.sh.git
				synced 2025-10-31 22:05:26 +01:00 
			
		
		
		
	Address CA file parsing problem (3.2)
.... by forbidding spaces in supplied CA files/directories Also now we're sanitizing the cmd line parameter better using `safe_echo()` See also #2647 .
This commit is contained in:
		
							
								
								
									
										13
									
								
								testssl.sh
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								testssl.sh
									
									
									
									
									
								
							| @@ -23545,10 +23545,10 @@ set_skip_tests() { | |||||||
| # arg2: value (if no = provided) | # arg2: value (if no = provided) | ||||||
| parse_opt_equal_sign() { | parse_opt_equal_sign() { | ||||||
|      if [[ "$1" == *=* ]]; then |      if [[ "$1" == *=* ]]; then | ||||||
|           echo ${1#*=} |           safe_echo "${1#*=}" | ||||||
|           return 1  # = means we don't need to shift args! |           return 1  # = means we don't need to shift args! | ||||||
|      else |      else | ||||||
|           echo "$2" |           safe_echo "${2}" | ||||||
|           return 0  # we need to shift |           return 0  # we need to shift | ||||||
|      fi |      fi | ||||||
| } | } | ||||||
| @@ -24205,13 +24205,16 @@ parse_cmd_line() { | |||||||
|      [[ $CMDLINE_IP == one ]] && ( is_ipv4addr "$URI" || is_ipv6addr "$URI" )  && fatal_cmd_line "\"--ip=one\" plus supplying an IP address doesn't work" $ERR_CMDLINE |      [[ $CMDLINE_IP == one ]] && ( is_ipv4addr "$URI" || is_ipv6addr "$URI" )  && fatal_cmd_line "\"--ip=one\" plus supplying an IP address doesn't work" $ERR_CMDLINE | ||||||
|      "$do_mx_all_ips" && [[ "$NODNS" == none ]] && fatal_cmd_line "\"--mx\" and \"--nodns=none\" don't work together" $ERR_CMDLINE |      "$do_mx_all_ips" && [[ "$NODNS" == none ]] && fatal_cmd_line "\"--mx\" and \"--nodns=none\" don't work together" $ERR_CMDLINE | ||||||
| 
 | 
 | ||||||
|      if [[ -d $ADDTL_CA_FILES ]]; then |      if [[ "${ADDTL_CA_FILES}" =~ \  ]]; then | ||||||
|  |           fatal_cmd_line "The CA file \"${ADDTL_CA_FILES}\" must not contain spaces" $ERR_RESOURCE | ||||||
|  |      fi | ||||||
|  |      if [[ -d "${ADDTL_CA_FILES}" ]]; then | ||||||
|           ADDTL_CA_FILES="$ADDTL_CA_FILES/*.pem" |           ADDTL_CA_FILES="$ADDTL_CA_FILES/*.pem" | ||||||
|      else |      else | ||||||
|           ADDTL_CA_FILES="${ADDTL_CA_FILES//,/ }" |           ADDTL_CA_FILES="${ADDTL_CA_FILES//,/ }" | ||||||
|      fi |      fi | ||||||
|      for fname in $ADDTL_CA_FILES; do |      for fname in ${ADDTL_CA_FILES}; do | ||||||
|           [[ -s "$fname" ]] || fatal_cmd_line "CA file \"$fname\" does not exist" $ERR_RESOURCE |           [[ -s "$fname" ]] || fatal_cmd_line "The CA file \"$fname\" does not exist" $ERR_RESOURCE | ||||||
|           grep -q 'BEGIN CERTIFICATE' "$fname" || fatal_cmd_line "\"$fname\" is not CA file in PEM format" $ERR_RESOURCE |           grep -q 'BEGIN CERTIFICATE' "$fname" || fatal_cmd_line "\"$fname\" is not CA file in PEM format" $ERR_RESOURCE | ||||||
|      done |      done | ||||||
| 
 | 
 | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Dirk Wetter
					Dirk Wetter