#undef calloc
#undef strdup
-/***************************************************************
- Allow a caller to set a "alarm" flag that tdb can check to abort
- a blocking lock on SIGALRM.
-***************************************************************/
-
-static sig_atomic_t *palarm_fired;
-
-static void tdb_set_lock_alarm(sig_atomic_t *palarm)
-{
- palarm_fired = palarm;
-}
-
/* these are little tdb utility functions that are meant to make
dealing with a tdb database a little less cumbersome in Samba */
/* Allow tdb_chainlock to be interrupted by an alarm. */
int ret;
gotalarm = 0;
- tdb_set_lock_alarm(CONST_DISCARD(sig_atomic_t *, &gotalarm));
if (timeout) {
CatchSignal(SIGALRM, SIGNAL_CAST gotalarm_sig);
{
uint8_t v;
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
- *r = v;
+ *r = (enum security_ace_type)v;
return NT_STATUS_OK;
}
{
uint16_t v;
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
- *r = v;
+ *r = (enum security_acl_revision)v;
return NT_STATUS_OK;
}
NDR_CHECK(ndr_pull_security_acl_revision(ndr, NDR_SCALARS, &r->revision));
NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_aces));
- if (r->num_aces < 0 || r->num_aces > 1000) {
+ if (r->num_aces > 1000) { /* num_aces is unsigned */
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
NDR_PULL_ALLOC_N(ndr, r->aces, r->num_aces);
{
uint8_t v;
NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &v));
- *r = v;
+ *r = (enum security_descriptor_revision)v;
return NT_STATUS_OK;
}
if (ndr_flags & NDR_SCALARS) {
NDR_CHECK(ndr_pull_align(ndr, 4));
NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sd_size));
- if (r->sd_size < 0 || r->sd_size > 0x40000) {
+ if (r->sd_size > 0x40000) { /* sd_size is unsigned */
return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
}
NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sd));
int *refcount)
{
pstring temp;
- char *prot;
char *alt_path[MAX_REFERRAL_COUNT];
int count = 0, i;
struct referral *reflist;
pstrcpy(temp,target);
- prot = strtok(temp,":");
/* parse out the alternate paths */
while((count<MAX_REFERRAL_COUNT) &&