X-Git-Url: http://git.madism.org/?a=blobdiff_plain;f=postlicyd%2Frbl.c;h=3f8c6822f1345d034447a0c3577bbaa04d72366a;hb=87ce54fc19930cf850a3926199851ab99c808e92;hp=3f98ee902dd87179b4b81fc154da336f3efefa30;hpb=8977d252fc44ae953df4bde4a2f1c5895beea4e0;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;