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

Commit bab1dfc

Browse files
authored
Merge branch 'master' into clientFix
2 parents b6d60b9 + 3f13640 commit bab1dfc

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
@@ -728,6 +728,34 @@ tap.test('modify DN excessive length (GH-480)', function (t) {
728728
})
729729
})
730730

731+
tap.test('modify DN excessive superior length', function (t) {
732+
const { BerReader, BerWriter } = require('asn1')
733+
const ModifyDNRequest = require('../lib/messages/moddn_request')
734+
const ber = new BerWriter()
735+
const entry = 'cn=Test User,ou=A Long OU ,ou=Another Long OU ,ou=Another Long OU ,dc=acompany,DC=io'
736+
const newSuperior = 'ou=A New Long OU , ou=Another New Long OU , ou=An OU , dc=acompany, dc=io'
737+
const newRdn = entry.replace(/(.*?),.*/, '$1')
738+
const deleteOldRdn = true
739+
const req = new ModifyDNRequest({
740+
entry: entry,
741+
deleteOldRdn: deleteOldRdn,
742+
controls: []
743+
})
744+
req.newRdn = newRdn
745+
req.newSuperior = newSuperior
746+
req._toBer(ber)
747+
const reader = new BerReader(ber.buffer)
748+
t.equal(reader.readString(), entry)
749+
t.equal(reader.readString(), newRdn)
750+
t.equal(reader.readBoolean(), deleteOldRdn)
751+
t.equal(reader.readByte(), 0x80)
752+
reader.readLength()
753+
t.equal(reader._len, newSuperior.length)
754+
reader._buf[--reader._offset] = 0x4
755+
t.equal(reader.readString(), newSuperior)
756+
t.end()
757+
})
758+
731759
tap.test('search basic', function (t) {
732760
t.context.client.search('cn=test, ' + SUFFIX, '(objectclass=*)', function (err, res) {
733761
t.error(err)

0 commit comments

Comments
 (0)