Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Possible dereference of NULL pointer at `ext/standard/var.c`

Abierto Apto para principiantes
#24,121 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
74/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
c, php
Área
backend

Línea de trabajo

Comienza en ext/standard/var.c alrededor de las líneas 1010-1016 e inspecciona las garantías que ZEND_HASH_FOREACH_KEY_VAL_IND proporciona para key antes de la llamada a zend_string_equals_literal. Confirma si key puede ser NULL en ese punto y asegúrate de que el cambio completado evite la posible desreferencia sin alterar el manejo existente de clases incompletas.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Bug Status: Needs Feedback

Description

At ext/standard/var.c:1010 macros ZEND_HASH_FOREACH_KEY_VAL_IND initiates a cycle, in every iteration of which pointer key is provided.

At ext/standard/var.c:1016 there is a check if(!key), which implies, that key pointer is not guaranteed to not be a NULL. However, right before this check, at ext/standard/var.c:1011 we dereference key pointer by calling zend_string_equals_literal(key, MAGIC_MEMBER) without any additional check.

Possible solution

Adjusting a condition may prevent any unexpected behaviors:

if (key && incomplete_class && zend_string_equals_literal(key, MAGIC_MEMBER)) {
				incomplete_class = false;
				continue;
			}

Found by Linux Verification Center (https://portal.linuxtesting.ru/) using SVACE.
Author D. Meliksetyan.

PHP Version
8.3.31 (found with static analysis)
Operating System

N/A

Lenguaje dominante
C
Estrellas
40.4k
Forks
8.2k
Merge medio
2 d 3 h
PR fusionados (30 d)
157

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de php/php-src

Todos los issues de php/php-src

Issues similares

Más issues de C

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.