Uploaded image for project: 'Directory ApacheDS'
  1. Directory ApacheDS
  2. DIRSERVER-1882

KertabEncoder.write() method should take into account the size of the entries list to determine the buffer size

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 2.0.0-M14
    • 2.0.0-M15
    • core
    • None

    Description

      Currently KeytabEncoder.write() always allocate 512 bytes as the buffer size, and doesn't consider the entities list size.

      ByteBuffer write( byte[] keytabVersion, List<KeytabEntry> entries )
      {
        ByteBuffer buffer = ByteBuffer.allocate( 512 );
        putKeytabVersion( buffer, keytabVersion );
        putKeytabEntries( buffer, entries );
        buffer.flip();
      
        return buffer;
      }
      

      For each entity, KeytabEncoder.putKeytabEntry() allocates 100 buffer size.

      private ByteBuffer putKeytabEntry( KeytabEntry entry )
      {
        ByteBuffer buffer = ByteBuffer.allocate( 100 );
        ......
      }
      

      This mechanism fails when we create multiple principals in one keytab file.

      KeytabEncoder.write() method should take into account the size of entries list to determine the buffer size. And a reasonable max size (100 currently) per entry must be determined.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              ywskycn Wei Yan
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: