From 7754b9ffc1b496170498f78fd2f05409dd0fb962 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 17 Aug 2015 06:00:30 +0000 Subject: dev.c: fail gracefully on out-of-memory errors The rest of cmogstored shall be updated to fail gracefully on OOM in due time. It may take a while, since not many systems encounter this, but we shall become more robust as time goes on. --- dev.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/dev.c b/dev.c index cd14db9..5b3888b 100644 --- a/dev.c +++ b/dev.c @@ -169,8 +169,17 @@ int mog_dev_mkusage(const struct mog_dev *dev, struct mog_svc *svc) if (!svc->mgmt_mfd) return 0; - usage_path = xasprintf("/dev%u/usage", (unsigned)dev->devid); - tmp_path = xasprintf("%s.%x", usage_path, (unsigned)getpid()); + if (asprintf(&usage_path, "/dev%u/usage", (unsigned)dev->devid) < 0) { + syslog(LOG_ERR, "error generating path: /dev%u/usage (%m)", + (unsigned)dev->devid); + return 0; + } + if (asprintf(&tmp_path, "%s.%x", usage_path, (unsigned)getpid()) < 0) { + syslog(LOG_ERR, "error generating path: /dev%u/usage.%u (%m)", + (unsigned)dev->devid, (unsigned)getpid()); + free(usage_path); + return 0; + } if (mog_unlink(svc, tmp_path) < 0 && errno != ENOENT) goto out; -- cgit v1.2.3-24-ge0c7