Форум программистов, компьютерный форум CyberForum.ru

Что делать с warning : CA2122 : Microsoft.Security ? - C++

Восстановить пароль Регистрация
 
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 16:50     Что делать с warning : CA2122 : Microsoft.Security ? #1
Добрый день уважаемые форумчане!
Закончил свой проект и решил протестировать его анализатором кода MVS2012 (в процессе компилирования) на предмет warning... (Просто компилятор их не выдает). Удалось устранить почти все (большей частью не внимателен был) кроме:

Кликните здесь для просмотра всего текста
MSBUILD : warning : CA2122 : Microsoft.Security : 'COpenGL:: Dispose(bool)' выполняет вызов в 'COpenGL::~COpenGL(void)', для которого задана проверка LinkDemand. Выполняя этот вызов, 'COpenGL::~COpenGL(void)' косвенно предоставляется пользовательскому коду. Рассмотрите следующий стек вызова, который может раскрыть способ обхода защиты безопасности:
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(void)'
MSBUILD : warning : CA2122 : Microsoft.Security : 'COpenGL:: Dispose(bool)' выполняет вызов в 'NativeWindow::Finalize(void)', для которого задана проверка LinkDemand. Выполняя этот вызов, 'NativeWindow::Finalize(void)' косвенно предоставляется пользовательскому коду. Рассмотрите следующий стек вызова, который может раскрыть способ обхода защиты безопасности:
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(bool)'
1>MSBUILD : warning : ->'COpenGL:: Dispose(void)'


код конструктора и деструктора вот:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
namespace OpenGLForm 
{
    [ComVisible(false)]
    public ref  class COpenGL sealed: public System::Windows::Forms::NativeWindow
    {
    public:
                GridP *gr;
        INT32 ig,jg,kg;
        double rm, xc1,yc1,zc1; 
        double ax,ay;
        bool        isGrid  ;                                       
                bool        isCoord ;       
        bool        isBody ;
                bool        isClicked  ;                                        
                bool        isRClicked ;        
                bool        isMClicked ;    
                bool        isDragging;     
                bool        isFon;      
                bool  isEnabled;
                double sfac;
 
 
    [EnvironmentPermissionAttribute(SecurityAction::LinkDemand, Unrestricted=false)]
        COpenGL(IntPtr parentForm, GLsizei iWidth, GLsizei iHeight)
        {
            
            CreateParams^ cp = gcnew CreateParams;
            sfac=1;
            cp->X = 0;
            cp->Y = 0;
        xc1=0;
        yc1=0;
        isEnabled=false;
            cp->Height = iHeight;
            cp->Width = iWidth;
        isClicked  = false;                                     
            isRClicked = false;                                     
            isDragging = false;     
        isGrid=true;                                        
            isCoord=true;       
        isBody=true ;   
        isFon=true ;    
            cp->Parent = parentForm;
            cp->Style = WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN |WS_TABSTOP|WS_BORDER ;
        this->CreateHandle(cp);
        }
[EnvironmentPermissionAttribute(SecurityAction::LinkDemand, Unrestricted=false)]
 ~COpenGL(System::Void)
        {
        
            glDeleteLists(base, 96);
            this->DestroyHandle();
       }
Как это обойти? Или не замарачиваться?
Заранее благодарю за Вашу критику и советы.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2014, 16:50     Что делать с warning : CA2122 : Microsoft.Security ?
Посмотрите здесь:

C++ подскажите что делать при вводимых данных 10 25 и 5 20 программа работает не правильно должна выводить 135 подскажите что делать
C++ Что означает этот warning?
C++ Что мне делать или что надо знать перед тем как начать изучение яз.программирования С/С++?
сообщение что исходный файл не откомпилирован что делать? C++
Что делать?(учу C++ и кое что ни понимаю может стоит начать с более "низких языков" например basic) C++
Незнаю что делать с Microsoft Visual Studio 2010. Исключение .Net Framework C++
Что такое __pragma(warning()) ? C++
Кто-нибудь может подробно объяснить, что такое allocators, зачем это и что с ними делать? Нигде не нашёл инфы C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mustimur
268 / 222 / 57
Регистрация: 22.11.2013
Сообщений: 832
Записей в блоге: 1
06.02.2014, 20:28  [ТС]     Что делать с warning : CA2122 : Microsoft.Security ? #2
Да еще один вопрос: этим кто-нибудь вообще пользуется? Все ли рекомендации исполняемы???
Миниатюры
Что делать с warning : CA2122 : Microsoft.Security ?  
Yandex
Объявления
06.02.2014, 20:28     Что делать с warning : CA2122 : Microsoft.Security ?
Ответ Создать тему
Опции темы

Текущее время: 16:14. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru