diff options
Diffstat (limited to 'patches/collateral-evolutions/network/02-ksize/drivers_net_wireless_orinoco_wext.c')
-rw-r--r-- | patches/collateral-evolutions/network/02-ksize/drivers_net_wireless_orinoco_wext.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/patches/collateral-evolutions/network/02-ksize/drivers_net_wireless_orinoco_wext.c b/patches/collateral-evolutions/network/02-ksize/drivers_net_wireless_orinoco_wext.c new file mode 100644 index 00000000..1bf1ac5b --- /dev/null +++ b/patches/collateral-evolutions/network/02-ksize/drivers_net_wireless_orinoco_wext.c @@ -0,0 +1,25 @@ +--- a/drivers/net/wireless/orinoco/wext.c ++++ b/drivers/net/wireless/orinoco/wext.c +@@ -31,8 +31,22 @@ + enum orinoco_alg alg, const u8 *key, int key_len, + const u8 *seq, int seq_len) + { ++#if LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,28) ++ int len; ++ if (!unlikely(ZERO_OR_NULL_PTR(priv->keys[index].key))) { ++ len = priv->keys[index].key_len; ++ memset(priv->keys[index].key, 0, len); ++ kfree(priv->keys[index].key); ++ } ++ if (!unlikely(ZERO_OR_NULL_PTR(priv->keys[index].seq))) { ++ len = priv->keys[index].seq_len; ++ memset(priv->keys[index].seq, 0, len); ++ kfree(priv->keys[index].seq); ++ } ++#else + kzfree(priv->keys[index].key); + kzfree(priv->keys[index].seq); ++#endif + + if (key_len) { + priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC); |