add: if ( ! budget ) { return NULL; }
context: gpointer gsb_data_budget_get_sub_budget_structure ( gint no_budget,						    gint no_sub_budget ){    GSList *tmp;    struct_budget *budget;    if (!no_budget	||	!no_sub_budget)	return NULL;    /* before checking all the budgets, we check the buffer */    if ( sub_budget_buffer	 &&	 sub_budget_buffer -> sub_budget_number == no_sub_budget )	return sub_budget_buffer;    budget = gsb_data_budget_get_structure ( no_budget );    tmp = budget -> sub_budget_list;    while ( tmp )    {	struct_sub_budget *sub_budget;	sub_budget = tmp -> data;	if ( sub_budget -> sub_budget_number == no_sub_budget )	{	    sub_budget_buffer = sub_budget;	    return sub_budget;	}	tmp = tmp -> next;    }    return NULL;}