-
Notifications
You must be signed in to change notification settings - Fork 246
Open
Description
Issue Overview
Minor bug parsing IP Addresses in ch8_ip_address.cpp
Describe your environment
The following line incorrectly includes square brackets in the character set:
21 if(str.find_first_not_of("[0123456789]") == std::string::npos)
Steps to Reproduce
[1].2.3.4throws an exception due to stoi("[1]")1].2.3.4gives a false positive due to stoi("1]") succeeding with returning 1.
Expected Behavior
[1].2.3.4 and 1].2.3.4 should both fail gracefully.
Current Behavior
$ ./a.out
Enter an IP address in decimal: [1].2.3.4
terminate called after throwing an instance of 'std::invalid_argument'
what(): stoi
Aborted
$ ./a.out
Enter an IP address in decimal: 1].2.3.4
1].2.3.4 is a valid IP address.
Possible Solution
Remove square brackets, and it works.
$ ./a.out
Enter an IP address in decimal: [1].2.3.4
[1].2.3.4 is not a valid IP address.
$ ./a.out
Enter an IP address in decimal: 1].2.3.4
1].2.3.4 is not a valid IP address.
Metadata
Metadata
Assignees
Labels
No labels