Partager via


C30034

avertissement C30034 : Passage d’une valeur d’indicateur à une fonction d’allocation pouvant entraîner l’allocation de mémoire exécutable. Vérifiez que la fonction d’allocation ne demande pas une forme de pool non paginé exécutable.

BANNED_MEM_ALLOCATION_MAYBE_UNSAFE

Un appel à une fonction qui entraîne l’allocation possible d’un pool non paginé exécutable a été trouvé. Il existe des paramètres utilisés pour indiquer que l’allocation résultante peut réellement être non exécutable, mais il est déterminé que cela est peu probable et que la mémoire exécutable a été allouée. Ceci est le plus courant avec une fonction qui accepte des fonctions d’allocation facultatives en tant que paramètre.

exemple de

Le code suivant génère cet avertissement, car il n’est pas connu si pAllocate alloue le type spécifié - dans ce quatrième paramètre (0, qui est exécutable) ou si le type d’allocation est défini à partir de pAllocate.

ExInitializeNPagedLookasideList(   pLookaside,
                pAllocate,
                pFree,
                0,
                size,
                tag,
                depth);

Le code suivant évite cet avertissement :

ExInitializeNPagedLookasideList(   pLookaside,
                pAllocate,
                pFree,
                POOL_NX_ALLOCATION,
                size,
                tag,
                depth);