mirror of
https://github.com/samba-team/samba.git
synced 2025-01-24 02:04:21 +03:00
r20286: handle the non oid string cases for pushing too
metze (This used to be commit 0777a8e749e8df88dd1b9f7be9e4f3012559243b)
This commit is contained in:
parent
64ba98bbd4
commit
089eda9585
@ -91,8 +91,17 @@ NTSTATUS ndr_push_drsuapi_DsReplicaOID(struct ndr_push *ndr, int ndr_flags, cons
|
||||
if (r->oid) {
|
||||
DATA_BLOB blob;
|
||||
|
||||
_OID_PUSH_CHECK(ber_write_OID_String(&blob, r->oid));
|
||||
talloc_steal(ndr, blob.data);
|
||||
if (strncasecmp("ff", r->oid, 2) == 0) {
|
||||
blob = strhex_to_data_blob(r->oid);
|
||||
if (!blob.data) {
|
||||
return ndr_push_error(ndr, NDR_ERR_SUBCONTEXT,
|
||||
"HEX String Conversion Error: %s\n",
|
||||
__location__);
|
||||
}
|
||||
} else {
|
||||
_OID_PUSH_CHECK(ber_write_OID_String(&blob, r->oid));
|
||||
talloc_steal(ndr, blob.data);
|
||||
}
|
||||
|
||||
NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, blob.length));
|
||||
NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, blob.data, blob.length));
|
||||
@ -157,10 +166,16 @@ size_t ndr_size_drsuapi_DsReplicaOID_oid(const char *oid, int flags)
|
||||
|
||||
if (!oid) return 0;
|
||||
|
||||
if (ber_write_OID_String(&_blob, oid)) {
|
||||
ret = _blob.length;
|
||||
if (strncasecmp("ff", oid, 2) == 0) {
|
||||
_blob = strhex_to_data_blob(oid);
|
||||
if (_blob.data) {
|
||||
ret = _blob.length;
|
||||
}
|
||||
} else {
|
||||
if (ber_write_OID_String(&_blob, oid)) {
|
||||
ret = _blob.length;
|
||||
}
|
||||
}
|
||||
|
||||
data_blob_free(&_blob);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user