From b1161811db7b81206fe5991472130ae8237e321d Mon Sep 17 00:00:00 2001 From: JP Rosevear Date: Mon, 21 Aug 2000 19:56:14 +0000 Subject: Make sure respbuffer is not null before manipulating it. If it is null, 2000-08-21 JP Rosevear * providers/nntp/camel-nntp-store.c (camel_nntp_command): Make sure respbuffer is not null before manipulating it. If it is null, return CAMEL_NNTP_FAIL and a decent error message. svn path=/trunk/; revision=4906 --- camel/ChangeLog | 7 +++++++ camel/providers/nntp/camel-nntp-store.c | 13 ++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/camel/ChangeLog b/camel/ChangeLog index 09bfcac267..d072116729 100644 --- a/camel/ChangeLog +++ b/camel/ChangeLog @@ -1,3 +1,10 @@ +2000-08-21 JP Rosevear + + * providers/nntp/camel-nntp-store.c (camel_nntp_command): + Make sure respbuffer is not null before manipulating it. + If it is null, return CAMEL_NNTP_FAIL and a decent error + message. + 2000-08-18 Peter Williams * camel-internet-address.c (internet_encode): If the name is "" we diff --git a/camel/providers/nntp/camel-nntp-store.c b/camel/providers/nntp/camel-nntp-store.c index 45b1fdee04..74952015a4 100644 --- a/camel/providers/nntp/camel-nntp-store.c +++ b/camel/providers/nntp/camel-nntp-store.c @@ -292,22 +292,29 @@ camel_nntp_command (CamelNNTPStore *store, char **ret, char *fmt, ...) /* Read the response */ respbuf = camel_stream_buffer_read_line (CAMEL_STREAM_BUFFER (store->istream)); - resp_code = atoi (respbuf); + if (!respbuf) { + if (ret) + *ret = g_strdup (g_strerror (errno)); + return CAMEL_NNTP_FAIL; + } + + resp_code = atoi (respbuf); + if (resp_code < 400) status = CAMEL_NNTP_OK; else if (resp_code < 500) status = CAMEL_NNTP_ERR; else status = CAMEL_NNTP_FAIL; - + if (ret) { *ret = strchr (respbuf, ' '); if (*ret) *ret = g_strdup (*ret + 1); } g_free (respbuf); - + return status; } -- cgit v1.2.3