Browse Source

usrloc(k): safety check for first record in udomain slot

- reported by David Kovarik, FS#234
Daniel-Constantin Mierla 13 years ago
parent
commit
31f404a98b
1 changed files with 9 additions and 7 deletions
  1. 9 7
      modules_k/usrloc/udomain.c

+ 9 - 7
modules_k/usrloc/udomain.c

@@ -1003,14 +1003,16 @@ int get_urecord(udomain_t* _d, str* _aor, struct urecord** _r)
 		sl = aorhash&(_d->size-1);
 		r = _d->table[sl].first;
 
-		for(i = 0; i < _d->table[sl].n; i++) {
-			if((r->aorhash==aorhash) && (r->aor.len==_aor->len)
-						&& !memcmp(r->aor.s,_aor->s,_aor->len)){
-				*_r = r;
-				return 0;
-			}
+		if(r!=NULL) {
+			for(i = 0; i < _d->table[sl].n; i++) {
+				if((r->aorhash==aorhash) && (r->aor.len==_aor->len)
+							&& !memcmp(r->aor.s,_aor->s,_aor->len)){
+					*_r = r;
+					return 0;
+				}
 
-			r = r->next;
+				r = r->next;
+			}
 		}
 	} else {
 		/* search in DB */