информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
За кого нас держат?Где водятся OGRыВсе любят мед
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вместо типа bool необходимо применить тип dword 11.12.05 16:04  Число просмотров: 2849
Автор: KVV Статус: Незарегистрированный пользователь
<"чистая" ссылка>
<programming>
проблемы с GetSecurityDescriptorDacl() 25.06.05 14:39   [+]
Автор: Lena Статус: Незарегистрированный пользователь
<"чистая" ссылка>
текст программы на VisualC++ .NET


#include "stdafx.h"

#using <mscorlib.dll>
#include <tchar.h>
#include <windows.h>
#include <lm.h>
#include <stdio.h>
#define UNICODE
#pragma comment(lib, "Netapi32.lib")
#pragma comment(lib, "Advapi32.lib")
#include <Aclapi.h>
using namespace System;

int _tmain(void)
{
//--------------Список пользователей---------------//
PNET_DISPLAY_USER pBuff, p;
DWORD res, dwRec, i = 0;
do
{
res = NetQueryDisplayInformation(NULL, 1, i, 1000, MAX_PREFERRED_LENGTH, &dwRec, (PVOID*)&pBuff);
if((res==ERROR_SUCCESS)|(res==ERROR_MORE_DATA))
{
p = pBuff;
for(;dwRec>0;dwRec--)
{
printf("Name: %S\n"
"Comment: %S\n"
"Flags: %u\n"
"Full Name: %S\n"
"User ID: %u\n"
"--------------------------------\n",
p->usri1_name,
p->usri1_comment,
p->usri1_flags,
p->usri1_full_name,
p->usri1_user_id
);
p++;
}
NetApiBufferFree(pBuff);
}
else printf("Error: %u\n", res);
}
while (res==ERROR_MORE_DATA);

//--------------Возвращаем дескриптор безопасности---------------//

CHAR *pObjectName;
PACL pDacl=NULL;
PSECURITY_DESCRIPTOR ppSecurityDescriptor=NULL;
DWORD res1;
pObjectName="C:\error.txt";
res1=GetNamedSecurityInfo((LPWSTR)pObjectName, SE_FILE_OBJECT, DACL_SECURITY_INFORMATION, NULL, NULL, &pDacl, NULL, &ppSecurityDescriptor);

//---------------Возвращаем DACL----------------------------------//

BOOL bDaclPresent = TRUE;
BOOL bDaclDefaulted = TRUE;
BOOL res2;
res2=GetSecurityDescriptorDacl(ppSecurityDescriptor, &bDaclPresent, &pDacl, &bDaclDefaulted);

return 0;
}



Ошибка при выполнении строки
res2=GetSecurityDescriptorDacl(ppSecurityDescriptor, &bDaclPresent, &pDacl, &bDaclDefaulted);

Текст дебагера:

First-chance exception at 0x7c928141 in Lena1.exe: 0xC0000005: Access violation reading location 0x00000000.
An unhandled exception of type 'System.NullReferenceException' occurred in Lena1.exe

Additional information: Object reference not set to an instance of an object.

Может кто-нибудь знает что делать?
Вместо типа bool необходимо применить тип dword 11.12.05 16:04  
Автор: KVV Статус: Незарегистрированный пользователь
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach