From bfb483898f53b2c505ba2e6a6885402a86bf131e Mon Sep 17 00:00:00 2001 From: Max Kellermann Date: Wed, 22 Jan 2014 21:01:05 +0100 Subject: db/upnp: use ParseUnsigned() instead of atoi() --- src/db/upnp/ContentDirectoryService.cxx | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'src/db/upnp') diff --git a/src/db/upnp/ContentDirectoryService.cxx b/src/db/upnp/ContentDirectoryService.cxx index 31c16cabe..62f39c7d0 100644 --- a/src/db/upnp/ContentDirectoryService.cxx +++ b/src/db/upnp/ContentDirectoryService.cxx @@ -25,6 +25,7 @@ #include "Directory.hxx" #include "Util.hxx" #include "Action.hxx" +#include "util/NumberParser.hxx" #include "util/Error.hxx" #include @@ -107,25 +108,18 @@ ContentDirectoryService::readDirSlice(UpnpClient_Handle hdl, DirBResFree cleaner(&response); - int didread = -1; const char *value = ixmlwrap::getFirstElementValue(response, "NumberReturned"); - if (value != nullptr) - didread = atoi(value); - - if (count == 0) { - // TODO: what's this? - error.Set(upnp_domain, "got -1 or 0 entries"); - return false; - } + didreadp = value != nullptr + ? ParseUnsigned(value) + : 0; value = ixmlwrap::getFirstElementValue(response, "TotalMatches"); if (value != nullptr) - totalp = atoi(value); + totalp = ParseUnsigned(value); if (!ReadResultTag(dirbuf, response, error)) return false; - didreadp = didread; return true; } @@ -191,13 +185,13 @@ ContentDirectoryService::search(UpnpClient_Handle hdl, DirBResFree cleaner(&response); - int count = -1; const char *value = ixmlwrap::getFirstElementValue(response, "NumberReturned"); - if (value != nullptr) - count = atoi(value); + const unsigned count = value != nullptr + ? ParseUnsigned(value) + : 0; - if (count == -1 || count == 0) { + if (count == 0) { // TODO: what's this? error.Set(upnp_domain, "got -1 or 0 entries"); return false; @@ -207,7 +201,7 @@ ContentDirectoryService::search(UpnpClient_Handle hdl, value = ixmlwrap::getFirstElementValue(response, "TotalMatches"); if (value != nullptr) - total = atoi(value); + total = ParseUnsigned(value); if (!ReadResultTag(dirbuf, response, error)) return false; -- cgit v1.2.3