rec->registered_by = s->src->addr;
/*
- * now remove all addresses that're the client doesn't hold anymore
- * and update the time stamp and owner for the ownes that are still there
+ * now remove all addresses that the client doesn't hold anymore
+ * and update the time stamp and owner for the ones that are still there
*/
for (i=0; rec->addresses[i]; i++) {
bool found = false;
goto done;
}
+ if (name->scope && strlen(name->scope) > 237) {
+ rcode = NBT_RCODE_SVR;
+ goto done;
+ }
+
duplicate_packet = wins_check_wack_queue(iface, packet, src);
if (duplicate_packet) {
/* just ignore the packet */
if (num_addrs <= 1) return; /* nothing to do */
/* first sort the addresses depending on the matching to the client */
- ldb_qsort(addresses, num_addrs , sizeof(addresses[0]),
- src, (ldb_qsort_cmp_fn_t)nbtd_wins_randomize1Clist_sort);
+ LDB_TYPESAFE_QSORT(addresses, num_addrs, src, nbtd_wins_randomize1Clist_sort);
mask = lp_parm_string(lp_ctx, NULL, "nbtd", "wins_randomize1Clist_mask");
if (!mask) {
goto done;
}
+ if (name->scope && strlen(name->scope) > 237) {
+ goto done;
+ }
+
status = winsdb_lookup(winssrv->wins_db, name, packet, &rec);
if (!NT_STATUS_IS_OK(status)) {
goto done;