Re: Kernel Panic while trying to access the datastructure parameter in ioctl call.
Re: Kernel Panic while trying to access the datastructure parameter in ioctl call.
- Subject: Re: Kernel Panic while trying to access the datastructure parameter in ioctl call.
- From: "Herb Petschauer" <email@hidden>
- Date: Wed, 18 Jul 2007 12:12:05 -0700
Quick look only...
What's the value of ctl->bytes? Are you logging it? Log some values for a sanity check. Make sure you don't perform the copyin() unless ctl->bytes <= 2048 (preferably a constant not a magic number). Also, try allocating "data" using IOMalloc() (don't forget to free it).
-H.
On 18/07/07, JanakiRam <email@hidden> wrote:
Hi ALL,
I'm doing maintainance of one application which has user
space daemon and kernel extension.
The User daemon sends the command to kernel extension using
ioctl command. I've a application specific structure which is being
passed as a parameter.
This structure object is available in kernel extension in ioctl
function pointer registered in kext start function.
My Custom Structure looks like this.
typedef struct {
/* input */
long version;
long b;
long c;
long d;
long e;
long f;
long g;
long bytes;
char * dptr; /* points to the data field */
long filler[4];
} IOCTL_Struct_t;
The problem is the kernel panic is comming up when i try to access
the data in kernel function.
int ioctl_functionpointer(dev_t dev, u_long cmd, caddr_t arg,int
fflag, struct proc *p)
{
IOCTL_Struct_t*ctl = (PF_Ctl_t*)arg;
char data[2048];
if (!ctl) {
return -1;
}
if ((ctl->dptr) ) {
int res = copyin((void *)ctl->dptr, (void *)data, ctl->bytes);
if (res != 0)
printf ("error in copyin");
}
return 0;
}
If i comment the line copyin function call , then its working fine.
I've tried to use the copyinstr instead of copyin , then also
its showing panic screen.
Please help me to solve this.
Thanks in Advance.
-JanakiRam.
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden