Index: include/dahdi/user.h =================================================================== --- include/dahdi/user.h (revision 7146) +++ include/dahdi/user.h (working copy) @@ -697,7 +697,8 @@ struct dahdi_tone_def tones[0]; }; -#define DAHDI_LOADZONE _IOW(DAHDI_CODE, 25, struct dahdi_tone_def_header) +#define DAHDI_LOADZONE_V1 _IOW(DAHDI_CODE, 25, struct dahdi_tone_def_header) +#define DAHDI_LOADZONE _IOW(DAHDI_CODE, 25, struct dahdi_tone_def_header *) /* * Free a tone zone Index: drivers/dahdi/dahdi-base.c =================================================================== --- drivers/dahdi/dahdi-base.c (revision 7146) +++ drivers/dahdi/dahdi-base.c (working copy) @@ -4270,6 +4270,10 @@ return -EFAULT; return dahdi_set_default_zone(j); case DAHDI_LOADZONE: + if (copy_from_user(&data, (void *) data, sizeof(data))) + return -EFAULT; + /* FALLTHRU */ + case DAHDI_LOADZONE_V1: return ioctl_load_zone(data); case DAHDI_FREEZONE: get_user(j, (int *) data);