Skip to content

Minor bug in ch8_ip_address.cpp #1

@nexushoratio

Description

@nexushoratio

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. [1].2.3.4 throws an exception due to stoi("[1]")
  2. 1].2.3.4 gives 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions