summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2018-02-27 19:16:47 +0100
committerLennart Poettering <lennart@poettering.net>2018-03-02 12:39:07 +0100
commit8419d4577641e519a49883cc80360bc348db2825 (patch)
tree94dec604fb1efdcf81acd561ff32216b7e6fb544
parent62d74c78b59f95a76778d9fa8dbe3b098afa2aad (diff)
downloadsystemd-8419d4577641e519a49883cc80360bc348db2825.tar.gz
coccinelle: similar to reallocarray() let's also systematically use malloc_multiply()
-rw-r--r--coccinelle/malloc_multiply.cocci20
-rw-r--r--src/udev/udev-rules.c2
-rw-r--r--src/vconsole/vconsole-setup.c2
3 files changed, 22 insertions, 2 deletions
diff --git a/coccinelle/malloc_multiply.cocci b/coccinelle/malloc_multiply.cocci
new file mode 100644
index 0000000000..3284edf737
--- /dev/null
+++ b/coccinelle/malloc_multiply.cocci
@@ -0,0 +1,20 @@
+@@
+expression q, n, m;
+@@
+- q = malloc((n)*(m))
++ q = malloc_multiply(n, m)
+@@
+expression q, n, m;
+@@
+- q = malloc(n*(m))
++ q = malloc_multiply(n, m)
+@@
+expression q, n, m;
+@@
+- q = malloc((n)*m)
++ q = malloc_multiply(n, m)
+@@
+expression q, n, m;
+@@
+- q = malloc(n*m)
++ q = malloc_multiply(n, m)
diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c
index 3b0ddb5118..635811c59f 100644
--- a/src/udev/udev-rules.c
+++ b/src/udev/udev-rules.c
@@ -1544,7 +1544,7 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names) {
udev_list_init(udev, &file_list, true);
/* init token array and string buffer */
- rules->tokens = malloc(PREALLOC_TOKEN * sizeof(struct token));
+ rules->tokens = malloc_multiply(PREALLOC_TOKEN, sizeof(struct token));
if (rules->tokens == NULL)
return udev_rules_unref(rules);
rules->token_max = PREALLOC_TOKEN;
diff --git a/src/vconsole/vconsole-setup.c b/src/vconsole/vconsole-setup.c
index 2e0e09d843..a9cc2bf63c 100644
--- a/src/vconsole/vconsole-setup.c
+++ b/src/vconsole/vconsole-setup.c
@@ -248,7 +248,7 @@ static void setup_remaining_vcs(int src_fd, unsigned src_idx, bool utf8) {
* requries 32 per glyph, regardless of the actual height - see the comment above #define
* max_font_size 65536 in drivers/tty/vt/vt.c for more details.
*/
- fontbuf = malloc((cfo.width + 7) / 8 * 32 * cfo.charcount);
+ fontbuf = malloc_multiply((cfo.width + 7) / 8 * 32, cfo.charcount);
if (!fontbuf) {
log_oom();
return;