Changeset 74

Show
Ignore:
Timestamp:
04/25/05 17:29:58
Author:
rachel
Message:

Preferred SKA signature sub-packet now uses malloc instead of fixed-size array

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openpgpsdk/trunk/src/packet-parse.c

    r72 r74  
    357357        break; 
    358358 
     359    case OPS_PTAG_SS_PREFERRED_SKA: 
     360        ops_ss_preferred_ska_free(&c->content.ss_preferred_ska); 
     361        break; 
     362 
    359363    case OPS_PARSER_PACKET_END: 
    360364        ops_packet_free(&c->content.packet); 
     
    697701 
    698702        C.ss_preferred_ska.len = subregion.length - subregion.length_read;        
    699         /* Do sanity check on length */ 
    700         if (C.ss_preferred_ska.len > MAX_PREFERRED_SKA) 
    701             { 
    702             ERR1 
    703                 ("Warning: Truncated Preferred Symmetric Algorithm - subpacket %d octets", 
    704                  C.ss_preferred_ska.len); 
    705             C.ss_preferred_ska.len = MAX_PREFERRED_SKA; 
    706             } 
     703        C.ss_preferred_ska.data = malloc(C.ss_preferred_ska.len); 
     704 
    707705        if (!ops_limited_read(C.ss_preferred_ska.data, 
    708706                              C.ss_preferred_ska.len, &subregion, opt)) 
     
    765763 
    766764    return 1; 
     765    } 
     766 
     767/** ops_ss_preferred_ska_free(ops_ss_preferred_ska_t * ss_preferred_ska) 
     768 */ 
     769 
     770void ops_ss_preferred_ska_free(ops_ss_preferred_ska_t * ss_preferred_ska) 
     771    { 
     772    free(ss_preferred_ska->data); 
     773    ss_preferred_ska->data=NULL; 
     774    ss_preferred_ska->len=0; 
    767775    } 
    768776 
  • openpgpsdk/trunk/src/packet.h

    r73 r74  
    414414    } ops_ss_key_id_t; 
    415415 
    416 /* MAX PREFERRED ALGORITHMS is defined to provide an upper bound 
    417  * on the size of array to be used to stored the array given in the 
    418  * Preferred Symmetric Algorithms signature sub-packet. 
    419  * The value has been arbitrarily chosen to allow for an array 
    420  * which includes each SKA currently defined in rfc2440bis 
    421  */ 
    422  
    423 #define MAX_PREFERRED_SKA 22 
    424416typedef struct 
    425417    { 
     
    428420                           The value 0 may represent the plaintext algorithm 
    429421                           so we cannot expect a null-terminated list */ 
    430     unsigned char data[MAX_PREFERRED_SKA]
     422    unsigned char * data
    431423    } ops_ss_preferred_ska_t; 
    432424 
     
    516508void ops_user_id_free(ops_user_id_t *id); 
    517509void ops_signature_free(ops_signature_t *sig); 
     510void ops_ss_preferred_ska_free(ops_ss_preferred_ska_t *ss_preferred_ska); 
    518511void ops_packet_free(ops_packet_t *packet); 
    519  
    520512void ops_parser_content_free(ops_parser_content_t *c); 
    521513