dbd->db_txn,
dbd->db_table[DBIF_IDX_NAME].db,
idxname,
- (reindex) ? DB_CREATE : 0))
+ DB_CREATE))
!= 0) {
LOG(log_error, logtype_cnid, "Failed to associate name index: %s",db_strerror(ret));
return -1;
DBT pkey, data;
char *cnids = resbuf;
cnid_t cnid;
+ char *namebkp = key->data;
+ int namelenbkp = key->size;
memset(&pkey, 0, sizeof(DBT));
memset(&data, 0, sizeof(DBT));
ret = cursorp->pget(cursorp, key, &pkey, &data, DB_SET_RANGE);
while (count < DBD_MAX_SRCH_RSLTS && ret != DB_NOTFOUND) {
- count++;
- memcpy(cnids, pkey.data, sizeof(cnid_t));
- cnids += sizeof(cnid_t);
- LOG(log_error, logtype_cnid, "match: CNID %" PRIu32, memcpy(&cnid, pkey.data, sizeof(cnid_t)), ntohl(cnid));
+ if (namelenbkp <= key->size && strncmp(namebkp, key->data, namelenbkp) == 0) {
+ count++;
+ memcpy(cnids, pkey.data, sizeof(cnid_t));
+ memcpy(&cnid, pkey.data, sizeof(cnid_t));
+ cnids += sizeof(cnid_t);
+ LOG(log_error, logtype_cnid, "match: CNID %" PRIu32, ntohl(cnid));
+ }
ret = cursorp->pget(cursorp, key, &pkey, &data, DB_NEXT_DUP);
}