if (put_user(boundary, &src->boundary)) 
if (boundary && put_user(boundary, &src->boundary)) 
static int snd_pcm_ioctl_sw_params_compat(snd_pcm_substream_t *substream,					  struct sndrv_pcm_sw_params32 __user *src){	snd_pcm_sw_params_t params;	snd_pcm_uframes_t boundary;	int err;	memset(&params, 0, sizeof(params));	if (get_user(params.tstamp_mode, &src->tstamp_mode) ||	    get_user(params.period_step, &src->period_step) ||	    get_user(params.sleep_min, &src->sleep_min) ||	    get_user(params.avail_min, &src->avail_min) ||	    get_user(params.xfer_align, &src->xfer_align) ||	    get_user(params.start_threshold, &src->start_threshold) ||	    get_user(params.stop_threshold, &src->stop_threshold) ||	    get_user(params.silence_threshold, &src->silence_threshold) ||	    get_user(params.silence_size, &src->silence_size))		return -EFAULT;	/*	 * Check silent_size parameter.  Since we have 64bit boundary,	 * silence_size must be compared with the 32bit boundary.	 */	boundary = recalculate_boundary(substream->runtime);	if (boundary && params.silence_size >= boundary)		params.silence_size = substream->runtime->boundary;	err = snd_pcm_sw_params(substream, &params);	if (err < 0)		return err;	if (put_user(boundary, &src->boundary))		return -EFAULT;	return err;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/7153a558ad598ff521f1d9430982e2a4a6865126/pcm_compat.c/buggy/sound/core/pcm_compat.c