func: static int CVE_2011_2700_VULN_si4713_write_econtrol_string(struct si4713_device struct v4l2_ext_control *control) struct v4l2_queryctrl vqc ; int len ; vqc . id = control -> id; rval = si4713_queryctrl ( & sdev -> sd , & vqc ); if ( rval < 0 )  switch ( control -> id )  char ps_name [ MAX_RDS_PS_NAME + 1 ] ; len = control -> size - 1; if ( len > MAX_RDS_PS_NAME )  rval = copy_from_user ( ps_name , control -> string , len ); if ( rval < 0 )  ps_name [ len ] = '\0'; if ( strlen ( ps_name ) % vqc . step )  