[NETFILTER]: nf_conntrack_amanda: fix textsearch_prepare() error check
authorAkinobu Mita <akinobu.mita@gmail.com>
Tue, 5 Jun 2007 19:56:53 +0000 (12:56 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Thu, 7 Jun 2007 20:40:38 +0000 (13:40 -0700)
The return value from textsearch_prepare() needs to be checked
by IS_ERR(). Because it returns error code as a pointer.

Cc: "Brian J. Murrell" <netfilter@interlinx.bc.ca>
Signed-off-by: Akinobu Mita <akinobu.mita@gmail.com>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/netfilter/nf_conntrack_amanda.c

index b8869eab7650f233ae50181838f93323ec121290..0568f2e86b5990cc713bd4a374fe3995a04dc898 100644 (file)
@@ -208,13 +208,14 @@ static int __init nf_conntrack_amanda_init(void)
 {
        int ret, i;
 
-       ret = -ENOMEM;
        for (i = 0; i < ARRAY_SIZE(search); i++) {
                search[i].ts = textsearch_prepare(ts_algo, search[i].string,
                                                  search[i].len,
                                                  GFP_KERNEL, TS_AUTOLOAD);
-               if (search[i].ts == NULL)
+               if (IS_ERR(search[i].ts)) {
+                       ret = PTR_ERR(search[i].ts);
                        goto err1;
+               }
        }
        ret = nf_conntrack_helper_register(&amanda_helper[0]);
        if (ret < 0)
@@ -227,10 +228,9 @@ static int __init nf_conntrack_amanda_init(void)
 err2:
        nf_conntrack_helper_unregister(&amanda_helper[0]);
 err1:
-       for (; i >= 0; i--) {
-               if (search[i].ts)
-                       textsearch_destroy(search[i].ts);
-       }
+       while (--i >= 0)
+               textsearch_destroy(search[i].ts);
+
        return ret;
 }