We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 76138d6 + 1c542af commit ee41549Copy full SHA for ee41549
ext/spl/spl_directory.c
@@ -187,7 +187,11 @@ static zend_object *spl_filesystem_object_new(zend_class_entry *class_type)
187
{
188
spl_filesystem_object *intern;
189
190
- intern = ecalloc(1, sizeof(spl_filesystem_object) + zend_object_properties_size(class_type));
+ intern = emalloc(sizeof(spl_filesystem_object) + zend_object_properties_size(class_type));
191
+ /* Avoid initializing the entirety of spl_filesystem_object.u.dir.entry. */
192
+ memset(intern, 0,
193
+ MAX(XtOffsetOf(spl_filesystem_object, u.dir.entry),
194
+ XtOffsetOf(spl_filesystem_object, u.file.escape) + sizeof(int)));
195
/* intern->type = SPL_FS_INFO; done by set 0 */
196
intern->file_class = spl_ce_SplFileObject;
197
intern->info_class = spl_ce_SplFileInfo;
0 commit comments