@@ -169,6 +169,11 @@ void CisaBinary::initKernel(int kernelIndex, VISAKernelImpl * kernel)
169169
170170 int nameLen = (int ) strlen (kernel->getName ());
171171
172+ MUST_BE_TRUE (nameLen <= COMMON_ISA_MAX_FILENAME_LENGTH,
173+ " Kernel Name exceeds maximum length allowed.\n " );
174+
175+
176+
172177 if (this ->getMajorVersion ())
173178 {
174179 if (kernel->getIsKernel ())
@@ -182,10 +187,8 @@ void CisaBinary::initKernel(int kernelIndex, VISAKernelImpl * kernel)
182187
183188 if (kernel->getIsKernel ())
184189 {
185- m_header.kernels [kernelIndex].name_len = (unsigned short ) nameLen;
186- m_header.kernels [kernelIndex].name = (char *)m_mem.alloc (nameLen + 1 );
187- m_header.kernels [kernelIndex].name [nameLen] = 0 ;
188- memcpy_s (m_header.kernels [kernelIndex].name , m_header.kernels [kernelIndex].name_len , kernel->getName (), m_header.kernels [kernelIndex].name_len );
190+ m_header.kernels [kernelIndex].name_len = (unsigned char ) nameLen;
191+ memcpy_s (&m_header.kernels [kernelIndex].name , COMMON_ISA_MAX_FILENAME_LENGTH, kernel->getName (), m_header.kernels [kernelIndex].name_len );
189192
190193 m_header.kernels [kernelIndex].offset = 0 ; // will be set later during finalize
191194 m_header.kernels [kernelIndex].size = kernel->getCisaBinarySize ();
@@ -208,10 +211,9 @@ void CisaBinary::initKernel(int kernelIndex, VISAKernelImpl * kernel)
208211 if (!kernel->getIsKernel ())
209212 {
210213 m_header.functions [functionIndex].linkage = 0 ; // deprecated and MBZ
211- m_header.functions [functionIndex].name_len = (unsigned short ) nameLen;
212- m_header.functions [functionIndex].name = (char *)m_mem.alloc (nameLen + 1 );
213- memcpy_s (m_header.functions [functionIndex].name , m_header.functions [functionIndex].name_len , kernel->getName (), m_header.functions [functionIndex].name_len );
214- m_header.functions [functionIndex].name [nameLen] = 0 ;
214+ m_header.functions [functionIndex].name_len = (unsigned char ) nameLen;
215+ memcpy_s (&m_header.functions [functionIndex].name , COMMON_ISA_MAX_FILENAME_LENGTH, kernel->getName (), m_header.functions [functionIndex].name_len );
216+
215217 m_header.functions [functionIndex].offset = 0 ; // will be set later during finalize
216218 m_header.functions [functionIndex].size = kernel->getCisaBinarySize ();
217219 m_header.functions [functionIndex].cisa_binary_buffer = kernel->getCisaBinaryBuffer (); // buffer containing entire kernel
@@ -254,7 +256,8 @@ int CisaBinary::finalizeCisaBinary()
254256 for (int i = 0 ; i < m_header.num_kernels ; i++)
255257 {
256258 writeInToCisaHeaderBuffer (&m_header.kernels [i].name_len , sizeof (m_header.kernels [i].name_len ));
257- writeInToCisaHeaderBuffer (m_header.kernels [i].name , m_header.kernels [i].name_len );
259+
260+ writeInToCisaHeaderBuffer (&m_header.kernels [i].name , m_header.kernels [i].name_len );
258261
259262 // setting offset to the compiled cisa binary kernel
260263 // to correct offset in final cisa binary
@@ -310,7 +313,8 @@ int CisaBinary::finalizeCisaBinary()
310313 {
311314 writeInToCisaHeaderBuffer (&m_header.functions [i].linkage , sizeof (m_header.functions [i].linkage ));
312315 writeInToCisaHeaderBuffer (&m_header.functions [i].name_len , sizeof (m_header.functions [i].name_len ));
313- writeInToCisaHeaderBuffer (m_header.functions [i].name , m_header.functions [i].name_len );
316+
317+ writeInToCisaHeaderBuffer (&m_header.functions [i].name , m_header.functions [i].name_len );
314318
315319 // setting offset to the compiled cisa binary kernel
316320 // to correct offset in final cisa binary
0 commit comments