summaryrefslogtreecommitdiff
path: root/utils/useragent.c
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2007-06-10 18:08:22 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2007-06-10 18:08:22 +0000
commit87ca206e13ab4245280e0208b46b7b4b6682d2c9 (patch)
tree72216405b549bbbe5e0dc794072bd925f4bf2669 /utils/useragent.c
parente6d754cc9664231173a549a667049ac3006e9af2 (diff)
downloadnetsurf-87ca206e13ab4245280e0208b46b7b4b6682d2c9.tar.gz
netsurf-87ca206e13ab4245280e0208b46b7b4b6682d2c9.tar.bz2
Warning fixes.
svn path=/trunk/netsurf/; revision=3332
Diffstat (limited to 'utils/useragent.c')
-rw-r--r--utils/useragent.c26
1 files changed, 17 insertions, 9 deletions
diff --git a/utils/useragent.c b/utils/useragent.c
index b76255f2c..085557d7e 100644
--- a/utils/useragent.c
+++ b/utils/useragent.c
@@ -8,10 +8,11 @@
#include <sys/utsname.h>
#include <stdio.h>
+#include <stdlib.h>
-#include "useragent.h"
#include "desktop/netsurf.h"
#include "utils/log.h"
+#include "utils/useragent.h"
static const char *core_user_agent_string = NULL;
@@ -27,25 +28,32 @@ build_user_agent(void)
struct utsname un;
const char *sysname = "Unknown";
const char *machine = "Unknown";
+ char *ua_string;
int len;
-
+
if (uname(&un) == 0) {
sysname = un.sysname;
machine = un.machine;
}
-
+
len = snprintf(NULL, 0, NETSURF_UA_FORMAT_STRING,
netsurf_version_major,
netsurf_version_minor,
- un.sysname,
- un.machine);
- core_user_agent_string = malloc(len + 1);
- snprintf(core_user_agent_string, len + 1,
+ sysname,
+ machine);
+ ua_string = malloc(len + 1);
+ if (!ua_string) {
+ /** \todo this needs handling better */
+ return;
+ }
+ snprintf(ua_string, len + 1,
NETSURF_UA_FORMAT_STRING,
netsurf_version_major,
netsurf_version_minor,
- un.sysname,
- un.machine);
+ sysname,
+ machine);
+
+ core_user_agent_string = ua_string;
LOG(("Built user agent \"%s\"", core_user_agent_string));
}