engines/ccgost/gost_crypt.c:162: error: BUFFER_OVERRUN_L3
  Offset: [2, +oo] Size: [1, +oo] by call to `OBJ_txt2nid`.
Showing all 14 steps of the trace


engines/ccgost/gost_crypt.c:158:30: Call
156.       struct gost_cipher_info *param;
157.       if (!obj) {
158.           const char *params = get_gost_engine_param(GOST_PARAM_CRYPT_PARAMS);
                                    ^
159.           if (!params || !strlen(params))
160.               return &gost_cipher_list[1];

engines/ccgost/gost_ctl.c:63:9: Assignment
  61.       char *tmp;
  62.       if (param < 0 || param > GOST_PARAM_MAX)
  63.           return NULL;
                ^
  64.       if (gost_params[param] != NULL) {
  65.           return gost_params[param];

engines/ccgost/gost_crypt.c:158:9: Assignment
156.       struct gost_cipher_info *param;
157.       if (!obj) {
158.           const char *params = get_gost_engine_param(GOST_PARAM_CRYPT_PARAMS);
               ^
159.           if (!params || !strlen(params))
160.               return &gost_cipher_list[1];

engines/ccgost/gost_crypt.c:162:15: Call
160.               return &gost_cipher_list[1];
161.   
162.           nid = OBJ_txt2nid(params);
                     ^
163.           if (nid == NID_undef) {
164.               GOSTerr(GOST_F_GET_ENCRYPTION_PARAMS,

crypto/objects/obj_dat.c:599:1: Parameter `*s`
  597.   }
  598.   
  599. > int OBJ_txt2nid(const char *s)
  600.   {
  601.       ASN1_OBJECT *obj;

crypto/objects/obj_dat.c:603:11: Call
  601.       ASN1_OBJECT *obj;
  602.       int nid;
  603.       obj = OBJ_txt2obj(s, 0);
                   ^
  604.       nid = OBJ_obj2nid(obj);
  605.       ASN1_OBJECT_free(obj);

crypto/objects/obj_dat.c:423:1: Parameter `*s`
    421.    */
    422.   
    423. > ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name)
    424.   {
    425.       int nid = NID_undef;

crypto/objects/obj_dat.c:439:9: Call
    437.   
    438.       /* Work out size of content octets */
    439.       i = a2d_ASN1_OBJECT(NULL, 0, s, -1);
                   ^
    440.       if (i <= 0) {
    441.           /* Don't clear the error */

crypto/asn1/a_object.c:90:1: <Length trace>
88.   }
89.   
90. > int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
91.   {
92.       int i, first, len = 0, c, use_bn;

crypto/asn1/a_object.c:90:1: Parameter `*buf`
      88.   }
      89.   
      90. > int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num)
      91.   {
      92.       int i, first, len = 0, c, use_bn;

crypto/asn1/a_object.c:104:5: Assignment
      102.           num = strlen(buf);
      103.   
      104.       p = buf;
                 ^
      105.       c = *(p++);
      106.       num--;

crypto/asn1/a_object.c:105:11: Assignment
      103.   
      104.       p = buf;
      105.       c = *(p++);
                       ^
      106.       num--;
      107.       if ((c >= '0') && (c <= '2')) {

crypto/asn1/a_object.c:118:11: Assignment
      116.           goto err;
      117.       }
      118.       c = *(p++);
                       ^
      119.       num--;
      120.       for (;;) {

crypto/asn1/a_object.c:133:17: Array access: Offset: [2, +oo] Size: [1, +oo] by call to `OBJ_txt2nid` 
      131.                   break;
      132.               num--;
      133.               c = *(p++);
                             ^
      134.               if ((c == ' ') || (c == '.'))
      135.                   break;
