DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
blobs[i] = data_blob_talloc(blobs, NULL, 4);
W_ERROR_HAVE_NO_MEMORY(blobs[i].data);
- if (strcmp("TRUE", (const char *)in->values[i].data) == 0) {
+ if (in->values[i].length >= 4 &&
+ strncmp("TRUE", (const char *)in->values[i].data, in->values[i].length) == 0) {
SIVAL(blobs[i].data, 0, 0x00000001);
- } else if (strcmp("FALSE", (const char *)in->values[i].data) == 0) {
+ } else if (in->values[i].length >= 5 &&
+ strncmp("FALSE", (const char *)in->values[i].data, in->values[i].length) == 0) {
SIVAL(blobs[i].data, 0, 0x00000000);
} else {
return WERR_FOOBAR;
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
- int t, f;
-
if (in->values[i].length == 0) {
return WERR_DS_INVALID_ATTRIBUTE_SYNTAX;
}
- t = strncmp("TRUE",
+ if (in->values[i].length >= 4 &&
+ strncmp("TRUE",
(const char *)in->values[i].data,
- in->values[i].length);
- f = strncmp("FALSE",
+ in->values[i].length) == 0) {
+ continue;
+ }
+ if (in->values[i].length >= 5 &&
+ strncmp("FALSE",
(const char *)in->values[i].data,
- in->values[i].length);
-
- if (t != 0 && f != 0) {
- return WERR_DS_INVALID_ATTRIBUTE_SYNTAX;
+ in->values[i].length) == 0) {
+ continue;
}
+ return WERR_DS_INVALID_ATTRIBUTE_SYNTAX;
}
return WERR_OK;
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
blobs[i] = data_blob_talloc(blobs, NULL, 8);
W_ERROR_HAVE_NO_MEMORY(blobs[i].data);
- if (ldb_val_string_cmp("16010101000000.0Z", &in->values[i]) == 0) {
+ if (ldb_val_string_cmp(&in->values[i], "16010101000000.0Z") == 0) {
SBVALS(blobs[i].data, 0, 0);
continue;
}
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
blobs[i] = data_blob_talloc(blobs, NULL, 8);
W_ERROR_HAVE_NO_MEMORY(blobs[i].data);
- if (ldb_val_string_cmp("16010101000000.0Z", &in->values[i]) == 0) {
+ if (ldb_val_string_cmp(&in->values[i], "16010101000000.0Z") == 0) {
SBVALS(blobs[i].data, 0, 0);
continue;
}
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
}
out->values[i] = data_blob_dup_talloc(out->values,
- in->value_ctr.values[i].blob);
+ *in->value_ctr.values[i].blob);
W_ERROR_HAVE_NO_MEMORY(out->values[i].data);
}
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
for (i=0; i < in->num_values; i++) {
out->value_ctr.values[i].blob = &blobs[i];
- blobs[i] = data_blob_dup_talloc(blobs, &in->values[i]);
+ blobs[i] = data_blob_dup_talloc(blobs, in->values[i]);
W_ERROR_HAVE_NO_MEMORY(blobs[i].data);
}
const struct ldb_val *val)
{
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
if (attr->rangeLower) {
WERROR status;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
const char *str;
if (in->value_ctr.values[i].blob == NULL) {
+ DEBUG(0, ("Attribute has no value\n"));
return WERR_FOOBAR;
}
if (in->value_ctr.values[i].blob->length != 4) {
+ DEBUG(0, ("Attribute has a value with 0 length\n"));
return WERR_FOOBAR;
}
obj_attr = dsdb_attribute_by_lDAPDisplayName(ctx->schema, (const char *)in->values[i].data);
if (!obj_attr) {
+ DEBUG(0, ("Unable to find attribute %s in the schema\n", (const char *)in->values[i].data));
return WERR_FOOBAR;
}
SIVAL(blobs[i].data, 0, obj_attr->attributeID_id);
struct drsuapi_DsReplicaAttribute *out)
{
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
switch (attr->attributeID_id) {
TALLOC_CTX *tmp_ctx;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
switch (attr->attributeID_id) {
return WERR_FOOBAR;
}
- out->values[i] = data_blob_string_const(str);
+ out->values[i] = data_blob_const(str, converted_size);
}
return WERR_OK;
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
bool ok;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
ok = convert_string_talloc(ctx->ldb,
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
W_ERROR_HAVE_NO_MEMORY(tmp_ctx);
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
dsdb_dn = dsdb_dn_parse(tmp_ctx, ctx->ldb, val,
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
unsigned int i;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
for (i=0; i < in->num_values; i++) {
DATA_BLOB *blobs;
if (attr->attributeID_id == DRSUAPI_ATTID_INVALID) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
out->attid = dsdb_attribute_get_attid(attr,
.validate_ldb = dsdb_syntax_NTTIME_validate_ldb,
.equality = "generalizedTimeMatch",
.comment = "Generalized Time",
- .ldb_syntax = LDB_SYNTAX_UTC_TIME,
.auto_normalise = true
},{
/* not used in w2k3 schema */
if (!dsdb_syntax_attid_from_remote_attid(&syntax_ctx, mem_ctx, in->attid, &attid_local)) {
DEBUG(0,(__location__ ": Can't find local ATTID for 0x%08X\n",
in->attid));
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
break;
case DSDB_ATTID_TYPE_INTID:
sa = dsdb_attribute_by_attributeID_id(schema, attid_local);
if (!sa) {
DEBUG(1,(__location__ ": Unknown attributeID_id 0x%08X\n", in->attid));
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
return sa->syntax->drsuapi_to_ldb(&syntax_ctx, sa, in, mem_ctx, out);
sa = dsdb_attribute_by_lDAPDisplayName(schema, in->name);
if (!sa) {
- return WERR_FOOBAR;
+ return WERR_DS_ATT_NOT_DEF_IN_SCHEMA;
}
/* use default syntax conversion context */