From 827c7829aa63933b96a80cda1018f5fadc31bf37 Mon Sep 17 00:00:00 2001 From: Charles Kerr Date: Fri, 8 May 2009 17:04:12 +0000 Subject: [PATCH] (trunk libT) don't rely just on errno to tell if tr_loadFile() succeeded. xref: http://trac.transmissionbt.com/ticket/2030?replyto=38#comment:38 --- libtransmission/rpc-server.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/libtransmission/rpc-server.c b/libtransmission/rpc-server.c index 95113bc6d..c130893a1 100644 --- a/libtransmission/rpc-server.c +++ b/libtransmission/rpc-server.c @@ -335,13 +335,7 @@ serve_file( struct evhttp_request * req, content_len = 0; content = tr_loadFile( filename, &content_len ); - if( errno ) - { - char * tmp = tr_strdup_printf( "%s (%s)", filename, tr_strerror( errno ) ); - send_simple_response( req, HTTP_NOTFOUND, tmp ); - tr_free( tmp ); - } - else + if( content ) { struct evbuffer * out; const time_t now = time( NULL ); @@ -357,6 +351,12 @@ serve_file( struct evhttp_request * req, tr_releaseBuffer( out ); tr_free( content ); } + else + { + char * tmp = tr_strdup_printf( "%s (%s)", filename, tr_strerror( errno ) ); + send_simple_response( req, HTTP_NOTFOUND, tmp ); + tr_free( tmp ); + } } }