si j'alloue de la mémoire à l'aide de malloc()
est-il un moyen de le marquer en lecture seule. Afin de memcpy() échoue si quelqu'un essaie de lui écrire?
Ceci est lié à un défaut de conception d'api où les utilisateurs sont de miss-à l'aide d'un const pointeur retourné par une méthode GetValue()
qui fait partie de la grande structure de mémoire. Puisque nous voulons éviter de copier de gros morceau de la mémoire, nous retourner vivre pointeur à l'intérieur d'un structurés de la mémoire qui est d'un format spécifique. Maintenant le problème est que certains de l'utilisateur de trouver hack pour y arriver des trucs de travail par l'écriture de ce mémoire directement et éviter SetValue() appel qui ne l'allocation et bien remise en mémoire format binaire que nous avons développé. Bien qu'il n'y hack parfois le travail, mais parfois il provoque la violation d'accès mémoire due à une mauvaise interprétation des indicateurs de contrôle qui a été remplacé par l'utilisateur.
Éduquer l'utilisateur est une tâche mais disons que pour l'instant, nous voulons qu'il n'y code à l'échec.
Je me demandais simplement si l'on peut simplement se protéger contre ce cas.
Par analogie supposer que quelqu'un d'obtenir une colonne blob d'instruction sqlite et puis écrire de nouveau à elle. Bien que dans le cas de sqlite, il ne fera pas de sens, mais ce peu happing dans notre cas.