if (info->sysex) { kfree(info->sysex); info->sysex = NULL; } if (info->ch) { kfree(info->ch); info->ch = NULL; } 
kfree(info->sysex); info->sysex = NULL; kfree(info->ch); info->ch = NULL; 
snd_seq_oss_synth_reset(seq_oss_devinfo_t *dp, int dev){	seq_oss_synth_t *rec;	seq_oss_synthinfo_t *info;	snd_assert(dev >= 0 && dev < dp->max_synthdev, return);	info = &dp->synths[dev];	if (! info->opened)		return;	if (info->sysex)		info->sysex->len = 0; /* reset sysex */	reset_channels(info);	if (info->is_midi) {		if (midi_synth_dev.opened <= 0)			return;		snd_seq_oss_midi_reset(dp, info->midi_mapped);		/* reopen the device */		snd_seq_oss_midi_close(dp, dev);		if (snd_seq_oss_midi_open(dp, info->midi_mapped,					  dp->file_mode) < 0) {			midi_synth_dev.opened--;			info->opened = 0;			if (info->sysex) {				kfree(info->sysex);				info->sysex = NULL;			}			if (info->ch) {				kfree(info->ch);				info->ch = NULL;			}		}		return;	}	rec = get_sdev(dev);	if (rec == NULL)		return;	if (rec->oper.reset) {		rec->oper.reset(&info->arg);	} else {		snd_seq_event_t ev;		memset(&ev, 0, sizeof(ev));		snd_seq_oss_fill_addr(dp, &ev, info->arg.addr.client,				      info->arg.addr.port);		ev.type = SNDRV_SEQ_EVENT_RESET;		snd_seq_oss_dispatch(dp, &ev, 0, 0);	}	snd_use_lock_free(&rec->use_lock);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4d572776d4dfa2d5385a2ec3acec3cc059149e13/seq_oss_synth.c/buggy/sound/core/seq/oss/seq_oss_synth.c