add: alarm(0);
context: int main(int c, char *argv[]){    icalfileset *clusterin, *clusterout;    icalcomponent *itr;    int count=0;    int tostdout = 0;    if(c < 2 || c > 3){	usage(argv[0]);	exit(1);    }    if (c == 2){	tostdout = 1;    }    icalerror_set_error_state(ICAL_PARSE_ERROR, ICAL_ERROR_NONFATAL);    signal(SIGALRM,sig_alrm);    alarm(0);    clusterin = icalfileset_new(argv[1]);    alarm(0);    if (clusterin == 0){	printf("Could not open input cluster \"%s\"",argv[1]);	       	exit(1);    }    if (!tostdout){	clusterout = icalfileset_new(argv[2]);	if (clusterout == 0){	    printf("Could not open output cluster \"%s\"\n",argv[2]);	    exit(1);	}    }    for (itr = icalset_get_first_component(clusterin);	 itr != 0;	 itr = icalset_get_next_component(clusterin)){        icalerror_set_error_state(ICAL_BADARG_ERROR, ICAL_ERROR_NONFATAL);	icalrestriction_check(itr);        icalerror_set_error_state(ICAL_BADARG_ERROR, ICAL_ERROR_DEFAULT);	if (itr != 0){	    if(tostdout){		printf("--------------\n%s\n",icalcomponent_as_ical_string(itr));	    } else {		icalfileset_add_component(clusterout,					  icalcomponent_new_clone(itr));	    }	    	    count++;	} else {	    printf("Got NULL component");	}    }    printf("Transfered %d components\n",count);    icalfileset_free(clusterin);    if (!tostdout){	icalfileset_mark(clusterout);	icalfileset_free(clusterout);    }     return 0;}