Skip to content
This repository was archived by the owner on May 14, 2024. It is now read-only.

Commit 8b2449c

Browse files
authored
Merge branch 'master' into fix/anonbind
2 parents 78e3ed5 + 3f13640 commit 8b2449c

File tree

2 files changed

+29
-1
lines changed

2 files changed

+29
-1
lines changed

lib/messages/moddn_request.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ ModifyDNRequest.prototype._toBer = function (ber) {
6060
const len = Buffer.byteLength(s)
6161

6262
ber.writeByte(0x80) // MODIFY_DN_REQUEST_NEW_SUPERIOR_TAG
63-
ber.writeByte(len)
63+
ber.writeLength(len)
6464
ber._ensure(len)
6565
ber._buf.write(s, ber._offset)
6666
ber._offset += len

test/client.test.js

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -694,6 +694,34 @@ tap.test('modify DN excessive length (GH-480)', function (t) {
694694
})
695695
})
696696

697+
tap.test('modify DN excessive superior length', function (t) {
698+
const { BerReader, BerWriter } = require('asn1')
699+
const ModifyDNRequest = require('../lib/messages/moddn_request')
700+
const ber = new BerWriter()
701+
const entry = 'cn=Test User,ou=A Long OU ,ou=Another Long OU ,ou=Another Long OU ,dc=acompany,DC=io'
702+
const newSuperior = 'ou=A New Long OU , ou=Another New Long OU , ou=An OU , dc=acompany, dc=io'
703+
const newRdn = entry.replace(/(.*?),.*/, '$1')
704+
const deleteOldRdn = true
705+
const req = new ModifyDNRequest({
706+
entry: entry,
707+
deleteOldRdn: deleteOldRdn,
708+
controls: []
709+
})
710+
req.newRdn = newRdn
711+
req.newSuperior = newSuperior
712+
req._toBer(ber)
713+
const reader = new BerReader(ber.buffer)
714+
t.equal(reader.readString(), entry)
715+
t.equal(reader.readString(), newRdn)
716+
t.equal(reader.readBoolean(), deleteOldRdn)
717+
t.equal(reader.readByte(), 0x80)
718+
reader.readLength()
719+
t.equal(reader._len, newSuperior.length)
720+
reader._buf[--reader._offset] = 0x4
721+
t.equal(reader.readString(), newSuperior)
722+
t.end()
723+
})
724+
697725
tap.test('search basic', function (t) {
698726
t.context.client.search('cn=test, ' + SUFFIX, '(objectclass=*)', function (err, res) {
699727
t.error(err)

0 commit comments

Comments
 (0)