On 04/04/2012 04:14 PM, Marc-André Lureau wrote: > > > ----- Mensaje original ----- >> Log port value, if it is invalid only. >> >> --- >> SpiceXPI/src/plugin/plugin.cpp | 32 >> ++++++++++++++++++++++++++++++-- >> 1 files changed, 30 insertions(+), 2 deletions(-) >> >> diff --git a/SpiceXPI/src/plugin/plugin.cpp >> b/SpiceXPI/src/plugin/plugin.cpp >> index de7afd0..c211395 100644 >> --- a/SpiceXPI/src/plugin/plugin.cpp >> +++ b/SpiceXPI/src/plugin/plugin.cpp >> @@ -104,6 +104,22 @@ namespace { >> >> return dest; >> } >> + >> + // helper function for tcp/udp range conversion and validation >> + static int portToInt(const std::string &port) >> + { >> + if (port.empty()) >> + return -1; >> + >> + char *end; >> + long int conv = strtol(port.c_str(), &end, 10); >> + if (*end != '\0') >> + return -2; >> + if (conv < 0 || conv > 65535) >> + return -2; > > This will return an error if the value given is -1.
It is meant to. If the string contains numeric values in the range of 0-65535, it returns them. If there is something else (eg. -1), it returns -2 as an error indicator. > >> >> #ifdef NPAPI_USE_CONSTCHARS >> @@ -608,6 +624,16 @@ void nsPluginInstance::SendWStr(uint32_t id, >> const wchar_t *str) >> >> void nsPluginInstance::Connect() >> { >> + const int port = portToInt(m_port); >> + const int sport = portToInt(m_secure_port); >> + > >> + if (port < -1) >> + LOG_ERROR("invalid port: " << m_port); > > I would return too in this case, we were given invalid values. As I have understood, we can continue with one valid port. > >> + if (sport < -1) >> + LOG_ERROR("invalid secure port: " << m_secure_port); > >> + if (port < 0 && sport < 0) >> + return; > > And in this case, it's useful to LOG_ERROR too. You mean, that there are both ports empty, right? -- Peter Hatina EMEA ENG-Desktop Development Red Hat Czech, Brno _______________________________________________ Spice-devel mailing list Spice-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/spice-devel