Re: copy_to_user

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

 



On Fri, 2010-12-24 at 01:00 -0800, Dave Hylands wrote:
> Hi Nilesh.
> 
> On Thu, Dec 23, 2010 at 11:59 PM, Nilesh Tayade
> <nilesh.tayade@xxxxxxxxxxxx> wrote:
> ...snip...
> > I tried it, and it seems adding mutex_init() works as Mukti mentioned. I
> > did get a kernel oops before (but no segfault). After adding
> > mutex_init() there is no oops/segfault. The code, however, is reading
> > the garbage, that needs to be fixed.
> 
> 	char n[20];
> 	short a = *((short *)&n[0]);
> 	short b = *((short *)&n[2]);
> 	short c = *((short *)&n[4]);
> 
> This sets a b and c to have essentially random values.
> 
> 		nbytes = read( fd, n, 40);
> 
> This causes the value of n to change. However, the values of a, b, and
> c retain the same random values you assigned them above.
> 
> 		printf( "\r a = %d \n ", a);
> 		printf("\r b = %d \n",b);
> 		printf("\r c = %d \n",c);
> 
> This prints the random values of a, b, and c rather than printing thee
> values of n that you read in.

Thanks for the explanation Dave.

I did not really bother to debug to avoid the garbage values, as the
main concern was for segfault and kernel oops.

> 
> Dave Hylands


-- 
Thanks,
Nilesh

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux