I have not received any response on this problem El mié, 15 sept 2021 a las 16:46, Alexander Villalba (< [email protected]>) escribió:
> Dear Friends!: > > I've been compiling this code: > https://github.com/bsalunke/SysCallInterceptModule > and when executing make or ./compile.sh, it's report this error: > > /MyPath/SysCallInterceptModule-master/Module/SysCallInterceptModule.c:244:12: > error: initialization of ‘ssize_t (*)(struct file *, char *, size_t, > loff_t *)’ {aka ‘long int (*)(struct file *, char *, long unsigned int, > long long int *)’} from incompatible pointer type ‘int (*)(struct file *, > char *, size_t, loff_t)’ {aka ‘int (*)(struct file *, char *, long > unsigned int, long long int)’} [-Werror=incompatible-pointer-types] > > The error stops being reported if I replace line 244 with: > .read = (ssize_t (*)(struct file *, char *, size_t, loff_t *)) > &device_read, > > But was that really necessary? I went through all the source code and > couldn't find any other struct file_operations with a read function defined > this way: > > int (*)(struct file *, char *, long unsigned int, long long int)’} > > The error also didn't disappear if I declared the read function on line > 147 as: > > static ssize_t device_read(struct file* filep, char* buffer, size_t len, > loff_t offset){ > > I appreciate any explanation on why this occurs and / or any different > solutions to avoid the error. Personally, it doesn't seem very logical to > me. > > > >

