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

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 2.0.0-M14
    • Fix Version/s: 2.0.0-M15
    • Component/s: core
    • Labels:
      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

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

                Dates

                • Created:
                  Updated:
                  Resolved: