1、 TECHNICAL SPECIFICATION ISO/IEC TS 17961:2013 TECHNICAL CORRIGENDUM 1 Published 2016-08-15 INTERNATIONAL ORGANIZATION FOR STANDARDIZATION ORGANISATION INTERNATIONALE DE NORMALISATION INTERNATIONAL ELECTROTECHNICAL COMMISSION COMMISSION LECTROTECHNIQUE INTERNATIONALEInformation technology Programmin
2、g languages, their environments and system software interfaces C secure coding rules TECHNICAL CORRIGENDUM 1 Technologies de linformation Langages de programmation, leur environnement et interfaces des logiciels de systmes Rgles de programmation scurise en C RECTIFICATIF TECHNIQUE 1 Technical Corrig
3、endum 1 to ISO/IEC TS 17961:2013 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces. ICS 35.060 Ref. No. ISO/IEC TS 17961:2013/Cor.1:2016(E) ISO/IEC 2016 All rights reserved Pub
4、lished in Switzerland ISO/IEC TS 17961:2013/Cor.1:2016(E) 2 ISO/IEC 2016 All rights reserved In rule 5.21, Rule section, replace with A call to a standard memory allocation function taking a size integer argument n and presumed to be intended for type T * shall be diagnosed when n sizeof(T) . A call
5、 to a standard memory allocation function taking a size integer argument n and presumed to be intended for type T * shall be regarded as an array of N elements, where N = n / sizeof(T) . Any allocation where N = 0 shall be diagnosed (i.e. where n sizeof(T). Also, any attempt to use this array in a m
6、anner that causes its array bound to be violated shall be diagnosed. In rule 5.21, replace EXAMPLE In this noncompliant example, a diagnostic is required because the value of n that is used in the malloc() call has been possibly miscalculated. wchar_t *f1(void) const wchar_t *p = L“Hello, World!“; c
7、onst size_t n = sizeof(p) * (wcslen(p) + 1); wchar_t *q = (wchar_t *)malloc(n); / diagnostic required /* . */ return q; with EXAMPLE 1 struct S1 unsigned int x; float y; struct S1 *z; ; struct S1 *f1(void) struct S1 *p = (struct S1*)malloc(sizeof(p); / diagnostic required return p; ISO/IEC TS 17961:2013/Cor.1:2016(E) ISO/IEC 2016 All rights reserved 3 EXAMPLE 2 wchar_t *f2(void) const wchar_t *p = L“Hello, World!“; const size_t n = (wcslen(p) + 1); wchar_t *q = (wchar_t *)malloc(n); wcscpy(q, p); / diagnostic required return q;
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1