* [PATCH] Use more appropriate alternatives to malloc()
@ 2008-10-21 10:10 Alan Jenkins
2008-10-21 11:11 ` Kay Sievers
0 siblings, 1 reply; 2+ messages in thread
From: Alan Jenkins @ 2008-10-21 10:10 UTC (permalink / raw)
To: linux-hotplug
Use calloc to request cleared memory instead.
Kernel and libc conspire to make this more efficient.
Also, replace one malloc() + strcpy() with strdup().
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
diff --git a/extras/collect/collect.c b/extras/collect/collect.c
index 355b85b..3a7e826 100644
--- a/extras/collect/collect.c
+++ b/extras/collect/collect.c
@@ -171,8 +171,7 @@ static int checkout(int fd)
if (debug)
fprintf(stderr, "Found word %s\n", word);
him = malloc(sizeof (struct _mate));
- him->name = malloc(strlen(word) + 1);
- strcpy(him->name, word);
+ him->name = strdup(word);
him->state = STATE_OLD;
udev_list_node_append(&him->node, &bunch);
word = NULL;
diff --git a/extras/volume_id/lib/volume_id.c b/extras/volume_id/lib/volume_id.c
index 791be43..8f22509 100644
--- a/extras/volume_id/lib/volume_id.c
+++ b/extras/volume_id/lib/volume_id.c
@@ -483,10 +483,9 @@ struct volume_id *volume_id_open_fd(int fd)
{
struct volume_id *id;
- id = malloc(sizeof(struct volume_id));
+ id = calloc(1, sizeof(struct volume_id));
if (id = NULL)
return NULL;
- memset(id, 0x00, sizeof(struct volume_id));
id->fd = fd;
diff --git a/udev/lib/libudev-ctrl.c b/udev/lib/libudev-ctrl.c
index 848f507..2e15db0 100644
--- a/udev/lib/libudev-ctrl.c
+++ b/udev/lib/libudev-ctrl.c
@@ -72,10 +72,9 @@ struct udev_ctrl *udev_ctrl_new_from_socket(struct udev *udev, const char *socke
{
struct udev_ctrl *uctrl;
- uctrl = malloc(sizeof(struct udev_ctrl));
+ uctrl = calloc(1, sizeof(struct udev_ctrl));
if (uctrl = NULL)
return NULL;
- memset(uctrl, 0x00, sizeof(struct udev_ctrl));
uctrl->refcount = 1;
uctrl->udev = udev;
@@ -213,10 +212,9 @@ struct udev_ctrl_msg *udev_ctrl_receive_msg(struct udev_ctrl *uctrl)
struct ucred *cred;
char cred_msg[CMSG_SPACE(sizeof(struct ucred))];
- uctrl_msg = malloc(sizeof(struct udev_ctrl_msg));
+ uctrl_msg = calloc(1, sizeof(struct udev_ctrl_msg));
if (uctrl_msg = NULL)
return NULL;
- memset(uctrl_msg, 0x00, sizeof(struct udev_ctrl_msg));
uctrl_msg->refcount = 1;
uctrl_msg->uctrl = uctrl;
diff --git a/udev/lib/libudev-device.c b/udev/lib/libudev-device.c
index 0f793aa..0ae39d6 100644
--- a/udev/lib/libudev-device.c
+++ b/udev/lib/libudev-device.c
@@ -238,10 +238,9 @@ struct udev_device *device_new(struct udev *udev)
if (udev = NULL)
return NULL;
- udev_device = malloc(sizeof(struct udev_device));
+ udev_device = calloc(1, sizeof(struct udev_device));
if (udev_device = NULL)
return NULL;
- memset(udev_device, 0x00, sizeof(struct udev_device));
udev_device->refcount = 1;
udev_device->udev = udev;
udev_list_init(&udev_device->devlinks_list);
diff --git a/udev/lib/libudev-enumerate.c b/udev/lib/libudev-enumerate.c
index fab9c4d..6942003 100644
--- a/udev/lib/libudev-enumerate.c
+++ b/udev/lib/libudev-enumerate.c
@@ -53,10 +53,9 @@ struct udev_enumerate *udev_enumerate_new(struct udev *udev)
{
struct udev_enumerate *udev_enumerate;
- udev_enumerate = malloc(sizeof(struct udev_enumerate));
+ udev_enumerate = calloc(1, sizeof(struct udev_enumerate));
if (udev_enumerate = NULL)
return NULL;
- memset(udev_enumerate, 0x00, (sizeof(struct udev_enumerate)));
udev_enumerate->refcount = 1;
udev_enumerate->udev = udev;
udev_list_init(&udev_enumerate->devices_list);
diff --git a/udev/lib/libudev-monitor.c b/udev/lib/libudev-monitor.c
index b9c2f8d..8d78d31 100644
--- a/udev/lib/libudev-monitor.c
+++ b/udev/lib/libudev-monitor.c
@@ -67,10 +67,9 @@ struct udev_monitor *udev_monitor_new_from_socket(struct udev *udev, const char
return NULL;
if (socket_path = NULL)
return NULL;
- udev_monitor = malloc(sizeof(struct udev_monitor));
+ udev_monitor = calloc(1, sizeof(struct udev_monitor));
if (udev_monitor = NULL)
return NULL;
- memset(udev_monitor, 0x00, sizeof(struct udev_monitor));
udev_monitor->refcount = 1;
udev_monitor->udev = udev;
@@ -105,10 +104,9 @@ struct udev_monitor *udev_monitor_new_from_netlink(struct udev *udev)
if (udev = NULL)
return NULL;
- udev_monitor = malloc(sizeof(struct udev_monitor));
+ udev_monitor = calloc(1, sizeof(struct udev_monitor));
if (udev_monitor = NULL)
return NULL;
- memset(udev_monitor, 0x00, sizeof(struct udev_monitor));
udev_monitor->refcount = 1;
udev_monitor->udev = udev;
diff --git a/udev/lib/libudev-queue.c b/udev/lib/libudev-queue.c
index 60f7209..bbd0641 100644
--- a/udev/lib/libudev-queue.c
+++ b/udev/lib/libudev-queue.c
@@ -45,10 +45,9 @@ struct udev_queue *udev_queue_new(struct udev *udev)
if (udev = NULL)
return NULL;
- udev_queue = malloc(sizeof(struct udev_queue));
+ udev_queue = calloc(1, sizeof(struct udev_queue));
if (udev_queue = NULL)
return NULL;
- memset(udev_queue, 0x00, sizeof(struct udev_queue));
udev_queue->refcount = 1;
udev_queue->udev = udev;
udev_list_init(&udev_queue->queue_list);
diff --git a/udev/lib/libudev.c b/udev/lib/libudev.c
index 511054a..9cf23c5 100644
--- a/udev/lib/libudev.c
+++ b/udev/lib/libudev.c
@@ -96,10 +96,9 @@ struct udev *udev_new(void)
char *config_file;
FILE *f;
- udev = malloc(sizeof(struct udev));
+ udev = calloc(1, sizeof(struct udev));
if (udev = NULL)
return NULL;
- memset(udev, 0x00, (sizeof(struct udev)));
udev->refcount = 1;
udev->log_fn = log_stderr;
udev->log_priority = LOG_ERR;
diff --git a/udev/udev-event.c b/udev/udev-event.c
index 2559ff7..c8342f5 100644
--- a/udev/udev-event.c
+++ b/udev/udev-event.c
@@ -34,10 +34,9 @@ struct udev_event *udev_event_new(struct udev_device *dev)
{
struct udev_event *event;
- event = malloc(sizeof(struct udev_event));
+ event = calloc(1, sizeof(struct udev_event));
if (event = NULL)
return NULL;
- memset(event, 0x00, sizeof(struct udev_event));
event->dev = dev;
event->udev = udev_device_get_udev(dev);
diff --git a/udev/udev-rules.c b/udev/udev-rules.c
index b8aa8ad..07c410d 100644
--- a/udev/udev-rules.c
+++ b/udev/udev-rules.c
@@ -2221,10 +2221,9 @@ struct udev_rules *udev_rules_new(struct udev *udev, int resolve_names)
struct udev_list_node file_list;
struct udev_list_entry *file_loop, *file_tmp;
- rules = malloc(sizeof(struct udev_rules));
+ rules = calloc(1, sizeof(struct udev_rules));
if (rules = NULL)
return rules;
- memset(rules, 0x00, sizeof(struct udev_rules));
rules->udev = udev;
rules->resolve_names = resolve_names;
udev_list_init(&file_list);
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2008-10-21 11:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-21 10:10 [PATCH] Use more appropriate alternatives to malloc() Alan Jenkins
2008-10-21 11:11 ` Kay Sievers
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).