} else if (!strcmp(str, "buggy-ptr")) { template.buggyptr = 1; 
static void snd_pcm_oss_proc_write(snd_info_entry_t *entry,				   snd_info_buffer_t * buffer){	snd_pcm_str_t *pstr = (snd_pcm_str_t *)entry->private_data;	char line[128], str[32], task_name[32], *ptr;	int idx1;	snd_pcm_oss_setup_t *setup, *setup1, template;	while (!snd_info_get_line(buffer, line, sizeof(line))) {		down(&pstr->oss.setup_mutex);		memset(&template, 0, sizeof(template));		ptr = snd_info_get_str(task_name, line, sizeof(task_name));		if (!strcmp(task_name, "clear") || !strcmp(task_name, "erase")) {			snd_pcm_oss_proc_free_setup_list(pstr);			up(&pstr->oss.setup_mutex);			continue;		}		for (setup = pstr->oss.setup_list; setup; setup = setup->next) {			if (!strcmp(setup->task_name, task_name)) {				template = *setup;				break;			}		}		ptr = snd_info_get_str(str, ptr, sizeof(str));		template.periods = simple_strtoul(str, NULL, 10);		ptr = snd_info_get_str(str, ptr, sizeof(str));		template.period_size = simple_strtoul(str, NULL, 10);		for (idx1 = 31; idx1 >= 0; idx1--)			if (template.period_size & (1 << idx1))				break;		for (idx1--; idx1 >= 0; idx1--)			template.period_size &= ~(1 << idx1);		do {			ptr = snd_info_get_str(str, ptr, sizeof(str));			if (!strcmp(str, "disable")) {				template.disable = 1;			} else if (!strcmp(str, "direct")) {				template.direct = 1;			} else if (!strcmp(str, "block")) {				template.block = 1;			} else if (!strcmp(str, "non-block")) {				template.nonblock = 1;			} else if (!strcmp(str, "partial-frag")) {				template.partialfrag = 1;			} else if (!strcmp(str, "no-silence")) {				template.nosilence = 1;			}		} while (*str);		if (setup == NULL) {			setup = (snd_pcm_oss_setup_t *) kmalloc(sizeof(snd_pcm_oss_setup_t), GFP_KERNEL);			if (setup) {				if (pstr->oss.setup_list == NULL) {					pstr->oss.setup_list = setup;				} else {					for (setup1 = pstr->oss.setup_list; setup1->next; setup1 = setup1->next);					setup1->next = setup;				}				template.task_name = kstrdup(task_name, GFP_KERNEL);			} else {				buffer->error = -ENOMEM;			}		}		if (setup)			*setup = template;		up(&pstr->oss.setup_mutex);	}}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/10f69f9e42833b82288882d10901dc86adc3e473/pcm_oss.c/buggy/sound/core/oss/pcm_oss.c