rem: rs.desc = 0; rs.debug  = component_error_str; rs_string = icalreqstattype_as_string(rs);  *return_status = icalproperty_new_requeststatus(rs_string);
context: char* check_component(icalcomponent* comp,  icalproperty **return_status,		      struct options_struct *opt){    char* component_error_str=0;    icalcomponent* inner;    int errors = 0;    icalproperty *p;    int found_attendee = 0;    *return_status = 0;    /* This do/while loop only executes once because it is being used       to fake exceptions */    do {	/* Check that we actually got a component */	if(comp == 0){	    strcpy(static_component_error_str,		   "Did not find a component");	    component_error_str = static_component_error_str;	    break;	}	/* Check that the root component is a VCALENDAR */	if(icalcomponent_isa(comp) != ICAL_VCALENDAR_COMPONENT){	    strcpy(static_component_error_str,		   "Root component is not a VCALENDAR");	    component_error_str = static_component_error_str;	    break;	}	/* Check that the component has a METHOD */	if (icalcomponent_get_first_property(comp,ICAL_METHOD_PROPERTY) == 0)	{	    strcpy(static_component_error_str,		   "Component does not have a METHOD property");	    component_error_str = static_component_error_str;	    break;	}		inner = get_first_real_component(comp);	/* Check that the compopnent has an organizer */	if(icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY) == 0){	    fprintf(stderr,"%s: fatal. Component does not have an ORGANIZER property\n",program_name);	    exit(1);	}	/* Check for this user as an attendee or organizer */	for(p = icalcomponent_get_first_property(inner,ICAL_ATTENDEE_PROPERTY);	    p != 0;	    p = icalcomponent_get_next_property(inner,ICAL_ATTENDEE_PROPERTY)){	  	    found_attendee += check_attendee(p,opt);	}	for(p = icalcomponent_get_first_property(inner,ICAL_ORGANIZER_PROPERTY);	    p != 0;	    p = icalcomponent_get_next_property(inner,ICAL_ORGANIZER_PROPERTY)){	  	    found_attendee += check_attendee(p,opt);	}			if (found_attendee == 0){	    struct icalreqstattype rs;	    char* rs_string;	    memset(static_component_error_str,0,PATH_MAX);	    snprintf(static_component_error_str,PATH_MAX,		   "This target user (%s) is not listed as an attendee or organizer",		    opt->calid );	    component_error_str = static_component_error_str;	    rs.code = ICAL_3_7_INVCU_STATUS;	    rs.desc = 0;	    rs.debug  = component_error_str;    	    rs_string = icalreqstattype_as_string(rs);	    *return_status = icalproperty_new_requeststatus(rs_string);	    break;	}	/* Check that the component passes iTIP restrictions */		errors = icalcomponent_count_errors(comp);	icalrestriction_check(comp);		if(errors != icalcomponent_count_errors(comp)){	    snprintf(static_component_error_str,PATH_MAX,		   "The component does not conform to iTIP restrictions.\n Here is the original component; look at the X-LIC-ERROR properties\nfor details\n\n%s",icalcomponent_as_ical_string(comp));	    component_error_str = static_component_error_str;	    break;	}    } while(0);    return component_error_str;}