if (debug) { if (rv == -1) log_d("get_path_info: stat(\"%s\") = %d", p, rv); else log_d("get_path_info: stat(\"%s\") = %d; st_mode = %#o", p, rv, s->st_mode); } 
static int get_path_info(struct request *r){	char *p, *pa, *end, *cp;	struct stat *s;	int rv;	s = &r->finfo;	p = r->path_translated;	end = p + strlen(p);	pa = r->path_args;	*pa = 0;	cp = end;	while (cp > p && cp[-1] == '/')		--cp;	while (cp > p) {		if (cp != end)			*cp = 0;		rv = stat(p, s);		if (debug) {			if (rv == -1)				log_d("get_path_info: stat(\"%s\") = %d", p, rv);			else				log_d("get_path_info: stat(\"%s\") = %d; st_mode = %#o", p, rv, s->st_mode);		}		if (cp != end)			*cp = '/';		if (rv != -1) {			strcpy(pa, cp);			if (S_ISDIR(s->st_mode))				*cp++ = '/';			*cp = 0;			return 0;		}		while (--cp > p && *cp != '/')			;	}	return -1;}
8520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/8520/58e316d2673e455d28671454320ed4afa429c573/request.c/buggy/src/request.c