Перейти к публикации

Ошибка в Teamcenter при выполнении handler


Рекомендованные сообщения

1 час назад, koner сказал:

    SAFE_CALL(AOM_ask_value_string(task, "comments", comment), ifail, *comment);
    if (comment == NULL || !strcmp((*comment), "")) {
        strcpy((*comment), "(нет)");
    }
тут ошибка, нельзя записывть в commen "нет". 


 

память для comment выделяет teamcenter, а вы ее должны освободить.
писать в commet както не правильно.
тогда так.
елси comment==NULL выделяйте память. если пустой то освобождайте а потом выделяйте.

это место в другой dll отрабатывает без ошибок, закоментил

if (comment == NULL || !strcmp((*comment), "")) {
        strcpy((*comment), "(нет)");
    }

но результат тот же

Ссылка на сообщение
Поделиться на других сайтах


будет без ошибок если if не выполнится

 buffer = *os_username;
 char *t = buffer[0];
 strcat(t, TUPOLEV); 
тоже самое с памятью.

 

 

 

И вообще

Ссылка на сообщение
Поделиться на других сайтах

везде где вы делаете AOM_ask_value_...
смотрите документаци.
если возвращает массив иили строку надо делать MEM_free.
Т.к. память выделяется тимцентром, в противном случае это видет к утечке памяти.

Ссылка на сообщение
Поделиться на других сайтах
В 19.11.2018 в 15:29, koner сказал:

везде где вы делаете AOM_ask_value_...
смотрите документаци.
если возвращает массив иили строку надо делать MEM_free.
Т.к. память выделяется тимцентром, в противном случае это видет к утечке памяти.

Доброго времени суток!

судя по всему я что-то не вижу,

делаю MEM_free(t);где  char *t .

в этом месте вылетает....

MEM_free(buffer);
MEM_free(epm_proposed_reviewers); эти обе строчки отработали без проблем

Ссылка на сообщение
Поделиться на других сайтах

MEM_free это нужно, но без него вылетать не будет.
Ошибку я вам указал тут:
 

В 19.11.2018 в 15:13, koner сказал:

buffer = *os_username;
 char *t = buffer[0];
 strcat(t, TUPOLEV);

 

тимцентр вам возвращает указатель на строку с выделенной памятью,
а вы пытаетесь прилепить к ней еще строку (strcat) в итоге вылезаете за выделенную область памяти.

Ссылка на сообщение
Поделиться на других сайтах
20 часов назад, koner сказал:

MEM_free это нужно, но без него вылетать не будет.
Ошибку я вам указал тут:
 

 

тимцентр вам возвращает указатель на строку с выделенной памятью,
а вы пытаетесь прилепить к ней еще строку (strcat) в итоге вылезаете за выделенную область памяти.

Спасибо!

все исправлено!

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.
Примечание: вашему сообщению потребуется утверждение модератора, прежде чем оно станет доступным.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.




×
×
  • Создать...