diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-02-24 18:02:49 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-02-24 18:02:49 +0100 |
| commit | de795b3e103309210dac9e331d45aacf0f0d884c (patch) | |
| tree | cb1679edba6f292665bfa10f673f2aed6efb4986 /src/lib | |
| parent | c003df64136806705d7662a885ada028a2ba3032 (diff) | |
Fix config.xml corruption when it contains multi-byte UTF8 characters.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/config.cc | 2 | ||||
| -rw-r--r-- | src/lib/dcp_video.cc | 2 | ||||
| -rw-r--r-- | src/lib/encode_server.cc | 8 |
3 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/config.cc b/src/lib/config.cc index d38256673..cc9bd6ffd 100644 --- a/src/lib/config.cc +++ b/src/lib/config.cc @@ -984,7 +984,7 @@ Config::write_config () const if (!f) { throw FileError (_("Could not open file for writing"), tmp); } - checked_fwrite (s.c_str(), s.length(), f, tmp); + checked_fwrite (s.c_str(), s.bytes(), f, tmp); fclose (f); boost::filesystem::remove (config_file()); boost::filesystem::rename (tmp, config_file()); diff --git a/src/lib/dcp_video.cc b/src/lib/dcp_video.cc index 153f4997e..ed68299bb 100644 --- a/src/lib/dcp_video.cc +++ b/src/lib/dcp_video.cc @@ -226,7 +226,7 @@ DCPVideo::encode_remotely (EncodeServerDescription serv, int timeout) /* Send XML metadata */ auto xml = doc.write_to_string ("UTF-8"); socket->write (xml.length() + 1); - socket->write ((uint8_t *) xml.c_str(), xml.length() + 1); + socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1); /* Send binary data */ LOG_TIMING("start-remote-send thread=%1", thread_id ()); diff --git a/src/lib/encode_server.cc b/src/lib/encode_server.cc index 92589c573..891b8caac 100644 --- a/src/lib/encode_server.cc +++ b/src/lib/encode_server.cc @@ -295,8 +295,8 @@ EncodeServer::broadcast_received () try { auto socket = make_shared<Socket>(); socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), MAIN_SERVER_PRESENCE_PORT)); - socket->write (xml.length() + 1); - socket->write ((uint8_t *) xml.c_str(), xml.length() + 1); + socket->write (xml.bytes() + 1); + socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1); } catch (...) { } @@ -304,8 +304,8 @@ EncodeServer::broadcast_received () try { auto socket = make_shared<Socket>(); socket->connect (boost::asio::ip::tcp::endpoint (_broadcast.send_endpoint.address(), BATCH_SERVER_PRESENCE_PORT)); - socket->write (xml.length() + 1); - socket->write ((uint8_t *) xml.c_str(), xml.length() + 1); + socket->write (xml.bytes() + 1); + socket->write ((uint8_t *) xml.c_str(), xml.bytes() + 1); } catch (...) { } |
