[linux-dvb] Digitv USB firmware loading issue [PATCH]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Freitag 09 Dezember 2005 19:28, Jon Burgess wrote:
> Jan K?mpe wrote:
> >  int dvb_usb_get_hexline(const struct firmware *fw, struct hexline *hx, int *pos)
> >  {
> > -	u8 *b = (u8 *) &fw->data[*pos];
> >  	int data_offs = 4;
> >  	if (*pos >= fw->size)
> >  		return 0;
> >  
> > +	u8 *b = (u8 *) &fw->data[*pos];
> >  	memset(hx,0,sizeof(struct hexline));
> 
> I don't see why this change is needed and it breaks on older GCC.

if *pos >= fw->size, data[*pos] will access unallocated memory behind data.

int dvb_usb_get_hexline(const struct firmware *fw, struct hexline *hx, int *pos)
{
-	u8 *b = (u8 *) &fw->data[*pos];
+	u8 *b;
 	int data_offs = 4;
 	if (*pos >= fw->size)
 		return 0;
 
+	*b = (u8 *) &fw->data[*pos];
 	memset(hx,0,sizeof(struct hexline));
 

-- 
Wolfgang


[Index of Archives]     [Linux Media]     [Video 4 Linux]     [Asterisk]     [Samba]     [Xorg]     [Xfree86]     [Linux USB]

  Powered by Linux