2009-11-24 17 views

risposta

5

ecco una chiave più lunga di 255:

HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Control \ DeviceClasses {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} ##? # STORAGE # VOLUME #_ ?? _ USBSTOR # DISCO & VEN_LEXAR & PROD_USB_FLASH_DRIVE & REV_1100 # AANL1B891R5GCDV6 & 0 # {53F56307-B6BF -11D0-94F2-00A0C91EFB8B} # {53f5630d-b6bf-11d0-94f2-00a0c91efb8b} #

Ho trovato questo quando stavo scrivendo uno strumento per cercare tutte le chiavi nel registro. Ho creato un buffer che era 256 che ha causato un'eccezione di corruzione dello stack.

Quando ho provato a visualizzare questa chiave utilizzando regedit ho notato che mostra una freccia che indica che ci sono sottochiavi ma che non rispondono quando si fa clic su. Immagino solo al tasto finale #, perché le altre chiavi in ​​quell'area finiscono con esso.

Quando ho raddoppiato il buffer tutto è andato liscio.

+1

È un bug API. La documentazione indica che il limite di lunghezza della chiave è 255, ma RegCreateKeyEx accetta 256 e il terminatore null non conta. Quindi, 257. Oops. – Zatronium

Problemi correlati