From: scottmk Date: Thu, 14 May 2009 11:24:59 +0000 (+0000) Subject: In searchJOIN(): abort if recursive call fails. X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=67eeb1a75209cab92e3dbe9a18ab014c81bc5a1b;p=evergreen%2Fmasslnc.git In searchJOIN(): abort if recursive call fails. git-svn-id: svn://svn.open-ils.org/ILS/trunk@13158 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- diff --git a/Open-ILS/src/c-apps/oils_cstore.c b/Open-ILS/src/c-apps/oils_cstore.c index 4a895bc06f..8175262e35 100644 --- a/Open-ILS/src/c-apps/oils_cstore.c +++ b/Open-ILS/src/c-apps/oils_cstore.c @@ -2396,9 +2396,18 @@ static char* searchJOIN ( const jsonObject* join_hash, osrfHash* leftmeta ) { const jsonObject* join_filter = jsonObjectGetKeyConst( snode, "join" ); if (join_filter) { char* jpred = searchJOIN( join_filter, idlClass ); - OSRF_BUFFER_ADD_CHAR( join_buf, ' ' ); - OSRF_BUFFER_ADD( join_buf, jpred ); - free(jpred); + if( jpred ) { + OSRF_BUFFER_ADD_CHAR( join_buf, ' ' ); + OSRF_BUFFER_ADD( join_buf, jpred ); + free(jpred); + } else { + osrfLogError( OSRF_LOG_MARK, "%s: Invalid nested join.", MODULENAME ); + jsonIteratorFree( search_itr ); + buffer_free( join_buf ); + if( freeable_hash ) + jsonObjectFree( freeable_hash ); + return NULL; + } } }