From 3406c1b17a4a7e6d4e2a7d9c1176affa72bce1bc Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Mon, 2 Oct 2023 16:21:10 +0200 Subject: [PATCH] contributing: add safety section --- CONTRIBUTING.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2c2342737..3d13f5fb1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -237,6 +237,15 @@ used and `#undef` them after. * Document the contents and container of a `struct wl_list` with a `// content.link` and `// container.list` comment. +### Safety + +* Avoid string manipulation functions which don't take the size of the + destination buffer as input: for instance, prefer `snprintf` over `sprintf`. +* Avoid repeating type names in `sizeof()` where possible. For instance, prefer + `ptr = calloc(1, sizeof(*ptr))` over `ptr = calloc(1, sizeof(struct foo))`. +* Prefer `*ptr = (struct foo){0}` over `memset(ptr, 0, sizeof(*ptr))`. +* Prefer `*foo = *bar` over `memcpy(foo, bar, sizeof(*foo))`. + ### Example ```c