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 Bug
    • Status: Resolved
    • Priority: Major 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.

        Issue Links

          Activity

            People

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

              Dates

              • Created:
                Updated:
                Resolved:

                Development