Unicorn with delicious cookie
Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top
>
>
>
Примеры ошибок, обнаруженных с...

Примеры ошибок, обнаруженных с помощью диагностики V742

V742. Function receives an address of a 'char' type variable instead of pointer to a buffer.


LFortran

V742 [CWE-170] Function receives an address of a 'char' type variable instead of pointer to a buffer. Inspect the first argument. lfortran_intrinsics.c 550


void _lfortran_strcat(char** s1, char** s2, char** dest)
{
  int cntr = 0;
  char trmn = '\0';
  int s1_len = strlen(*s1);
  int s2_len = strlen(*s2);
  int trmn_size = strlen(&trmn);                               // <=
  char* dest_char = (char*)malloc(s1_len+s2_len+trmn_size);
  for (int i = 0; i < s1_len; i++) {
    dest_char[cntr] = (*s1)[i];
    cntr++;
  }
  for (int i = 0; i < s2_len; i++) {
    dest_char[cntr] = (*s2)[i];
    cntr++;
  }
  dest_char[cntr] = trmn;
  *dest = &(dest_char[0]);
}