fopen with security enhancements...
От: c-smile Канада http://terrainformatica.com
Дата: 10.04.13 05:35
Оценка:
Есть классическая функция

FILE *fopen( 
   const char *filename,
   const char *mode 
);



И есть её так сказать security enhanced версия

errno_t fopen_s( 
   FILE** pFile,
   const char *filename,
   const char *mode 
);


вопрос на засыпку: почему вторая считается более секьюрной? В чем сермяжность-то?
Re: fopen with security enhancements...
От: Anpek  
Дата: 10.04.13 05:51
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>вопрос на засыпку: почему вторая считается более секьюрной? В чем сермяжность-то?


Дык fopen_s же!!! Я в своих прогах, если хочу секьюрную функцию сделать тоже s приписываю и все
Да еще код ошибки возвращает!!!
Re: fopen with security enhancements...
От: IROV..  
Дата: 10.04.13 06:47
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>вопрос на засыпку: почему вторая считается более секьюрной? В чем сермяжность-то?

http://stackoverflow.com/questions/2575116/fopen-fopen-s-and-writing-to-files
я не волшебник, я только учусь!
Re[2]: fopen with security enhancements...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.04.13 06:58
Оценка:
Здравствуйте, IROV.., Вы писали:

IRO>Здравствуйте, c-smile, Вы писали:


CS>>вопрос на засыпку: почему вторая считается более секьюрной? В чем сермяжность-то?

IRO>http://stackoverflow.com/questions/2575116/fopen-fopen-s-and-writing-to-files

Что-то там ничего по сути. "Checking more edge conditions" — что мешало сделать то же для обычного fopen()?
Функции группы _s должны отличаться или в интерфейсе (как strcpy_s), или несовместимо — в поведении.
Тут же нет признаков ни первого, ни второго.
The God is real, unless declared integer.
Re[3]: fopen with security enhancements...
От: IROV..  
Дата: 10.04.13 07:13
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, IROV.., Вы писали:


IRO>>Здравствуйте, c-smile, Вы писали:


CS>>>вопрос на засыпку: почему вторая считается более секьюрной? В чем сермяжность-то?

IRO>>http://stackoverflow.com/questions/2575116/fopen-fopen-s-and-writing-to-files

N>Что-то там ничего по сути. "Checking more edge conditions" — что мешало сделать то же для обычного fopen()?

N>Функции группы _s должны отличаться или в интерфейсе (как strcpy_s), или несовместимо — в поведении.
N>Тут же нет признаков ни первого, ни второго.
Files opened by fopen_s and _wfopen_s are not sharable. If you require that a file be sharable, use _fsopen, _wfsopen with the appropriate sharing mode constant (for example, _SH_DENYNO for read/write sharing).


http://forums.codeguru.com/showthread.php?446884-fopen_s-errno-13
я не волшебник, я только учусь!
Re[4]: fopen with security enhancements...
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 10.04.13 07:56
Оценка:
Здравствуйте, IROV.., Вы писали:

N>>Что-то там ничего по сути. "Checking more edge conditions" — что мешало сделать то же для обычного fopen()?

N>>Функции группы _s должны отличаться или в интерфейсе (как strcpy_s), или несовместимо — в поведении.
N>>Тут же нет признаков ни первого, ни второго.
IRO>Files opened by fopen_s and _wfopen_s are not sharable. If you require that a file be sharable, use _fsopen, _wfsopen with the appropriate sharing mode constant (for example, _SH_DENYNO for read/write sharing).
IRO>


IRO>http://forums.codeguru.com/showthread.php?446884-fopen_s-errno-13


Мнэээ. Ясно. Но это они считают секьюрностью? По-моему, у авторов CRT до сих пор в голове DOS и восьмибитные игрушки.
The God is real, unless declared integer.
Re[5]: fopen with security enhancements...
От: Mr.Delphist  
Дата: 10.04.13 15:48
Оценка:
Здравствуйте, netch80, Вы писали:

N>Мнэээ. Ясно. Но это они считают секьюрностью? По-моему, у авторов CRT до сих пор в голове DOS и восьмибитные игрушки.


Не только DOS, не только x86, не только Visual Studio... Не забывайте — это plain C.
Re: fopen with security enhancements...
От: achp  
Дата: 11.04.13 12:27
Оценка: :)
Здравствуйте, c-smile, Вы писали:

CS>
CS>errno_t fopen_s( 
CS>   FILE** pFile,
CS>   const char *filename,
CS>   const char *mode 
CS>);
CS>


CS>вопрос на засыпку: почему вторая считается более секьюрной? В чем сермяжность-то?


Она, наверное, проверяет свои параметры, поэтому её нельзя завалить, передав в неё pFile == 0.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.