url.c and file.c: fix OOM triggered segfault

This commit is contained in:
Yang Tse
2011-11-03 21:56:51 +01:00
parent 93e57d0628
commit 6fa6567b92
2 changed files with 6 additions and 5 deletions

View File

@@ -184,7 +184,7 @@ static CURLcode file_range(struct connectdata *conn)
static CURLcode file_connect(struct connectdata *conn, bool *done)
{
struct SessionHandle *data = conn->data;
char *real_path = curl_easy_unescape(data, data->state.path, 0, NULL);
char *real_path;
struct FILEPROTO *file;
int fd;
#ifdef DOS_FILESYSTEM
@@ -192,13 +192,14 @@ static CURLcode file_connect(struct connectdata *conn, bool *done)
char *actual_path;
#endif
if(!real_path)
return CURLE_OUT_OF_MEMORY;
/* If there already is a protocol-specific struct allocated for this
sessionhandle, deal with it */
Curl_reset_reqproto(conn);
real_path = curl_easy_unescape(data, data->state.path, 0, NULL);
if(!real_path)
return CURLE_OUT_OF_MEMORY;
if(!data->state.proto.file) {
file = calloc(1, sizeof(struct FILEPROTO));
if(!file) {