Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Crash on sendRequest with invalid setHost in sf::Http #3540

@Zombieschannel

Description

@Zombieschannel

Prerequisite Checklist

Describe your issue here

Upon running some code like this:

    Http http;
    Http::Request request;
    http.setHost("garbage");
    request.setMethod(Http::Request::Method::Get);
    request.setUri("");
    request.setHttpVersion(1, 1);
    Http::Response response = http.sendRequest(request, seconds(0.5));
    err() << response.getBody() << endl;
    err() << endl;

at the sendRequest line, the code crashes with the following error:

terminate called after throwing an instance of 'std::bad_optional_access'
  what():  bad optional access

which happens at this line:

    if (m_connection.connect(m_host.value(), m_port, timeout) == Socket::Status::Done)

in Http.cpp

Your Environment

  • OS / distro / window manager: Linux/X11
  • SFML version: 3.0.1
  • Compiler / toolchain: g++ / CMake

Steps to reproduce

Http http;
Http::Request request;
http.setHost("garbage");
request.setMethod(Http::Request::Method::Get);
request.setUri("");
request.setHttpVersion(1, 1);
Http::Response response = http.sendRequest(request, seconds(0.5));
err() << response.getBody() << endl;
err() << endl;

Expected behavior

Should not crash.

Actual behavior

Crash.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    In Review

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions