X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=postlicyd%2Frbl.c;h=3f8c6822f1345d034447a0c3577bbaa04d72366a;hb=1b6ea933129c7a718fc81bedb282a13958a8ea68;hp=3f98ee902dd87179b4b81fc154da336f3efefa30;hpb=6aafe01d02acf2c2688ba7047b6f2f738afff50a;p=apps%2Fpfixtools.git diff --git a/postlicyd/rbl.c b/postlicyd/rbl.c index 3f98ee9..3f8c682 100644 --- a/postlicyd/rbl.c +++ b/postlicyd/rbl.c @@ -173,6 +173,9 @@ rbldb_t *rbldb_create(const char *file, bool lock) /* Lookup may perform serveral I/O, so avoid swap. */ db->locked = lock && mlock(db->ips, db->len * sizeof(*(db->ips))) == 0; + if (lock && !db->locked) { + UNIXERR("mlock"); + } if (db->len) { # define QSORT_TYPE uint32_t @@ -207,7 +210,7 @@ bool rbldb_ipv4_lookup(rbldb_t *db, uint32_t ip) int l = 0, r = db->len; while (l < r) { - int i = (r + 1) / 2; + int i = (r + l) / 2; if (db->ips[i] == ip) return true;