From 71593dfe57e2b364fb794b1dc993e029e16d57f7 Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Sat, 6 Feb 2010 17:30:06 +0000 Subject: OOM handling fix --- lib/rtsp.c | 6 ++++-- lib/url.c | 10 ++++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/rtsp.c b/lib/rtsp.c index 8f3218947..8aaac89ff 100644 --- a/lib/rtsp.c +++ b/lib/rtsp.c @@ -461,15 +461,17 @@ CURLcode Curl_rtsp(struct connectdata *conn, bool *done) if(!Curl_checkheaders(data, "Content-Type:")) { result = Curl_add_bufferf(req_buffer, "Content-Type: text/parameters\r\n"); + if(result) + return result; } - if(result) - return result; } if(rtspreq == RTSPREQ_ANNOUNCE) { if(!Curl_checkheaders(data, "Content-Type:")) { result = Curl_add_bufferf(req_buffer, "Content-Type: application/sdp\r\n"); + if(result) + return result; } } diff --git a/lib/url.c b/lib/url.c index 8340e52c0..0b1446c17 100644 --- a/lib/url.c +++ b/lib/url.c @@ -4321,13 +4321,19 @@ static CURLcode set_userpass(struct connectdata *conn, !conn->bits.user_passwd) { conn->user = strdup(CURL_DEFAULT_USER); - conn->passwd = strdup(CURL_DEFAULT_PASSWORD); + if(conn->user) + conn->passwd = strdup(CURL_DEFAULT_PASSWORD); + else + conn->passwd = NULL; /* This is the default password, so DON'T set conn->bits.user_passwd */ } else { /* store user + password, zero-length if not set */ conn->user = strdup(user); - conn->passwd = strdup(passwd); + if(conn->user) + conn->passwd = strdup(passwd); + else + conn->passwd = NULL; } if(!conn->user || !conn->passwd) return CURLE_OUT_OF_MEMORY; -- cgit v1.2.3