Some functions like the crypto init or proc_mkdir do not return an
error value. Replace the -1, which is actually EPERM, and looks a
little out of place, and use ENXIO instead. (After all, the requested
objects were not there after the request of initialization.)
if (request_module(crypto.algo) < 0) {
printk(KERN_ERR PKNOCK "request_module('%s') error.\n",
crypto.algo);
- return -1;
+ return -ENXIO;
}
crypto.tfm = crypto_alloc_hash(crypto.algo, 0, CRYPTO_ALG_ASYNC);
if (crypto.tfm == NULL) {
printk(KERN_ERR PKNOCK "failed to load transform for %s\n",
crypto.algo);
- return -1;
+ return -ENXIO;
}
crypto.size = crypto_hash_digestsize(crypto.tfm);
if (!(pde = proc_mkdir("xt_pknock", init_net__proc_net))) {
printk(KERN_ERR PKNOCK "proc_mkdir() error in _init().\n");
- return -1;
+ return -ENXIO;
}
return xt_register_match(&xt_pknock_mt_reg);
}