monitor: remove stack allocations

Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
Christian Brauner 2019-02-05 07:31:16 +01:00
parent f5849fd76f
commit 54b43e8f09
No known key found for this signature in database
GPG Key ID: 8EB056D53EECB12D

View File

@ -49,6 +49,7 @@
#include "log.h"
#include "lxclock.h"
#include "macro.h"
#include "memory_utils.h"
#include "monitor.h"
#include "state.h"
#include "utils.h"
@ -170,9 +171,9 @@ int lxc_monitor_close(int fd)
*/
int lxc_monitor_sock_name(const char *lxcpath, struct sockaddr_un *addr)
{
__do_free char *path;
size_t len;
int ret;
char *path;
uint64_t hash;
/* addr.sun_path is only 108 bytes, so we hash the full name and
@ -183,7 +184,7 @@ int lxc_monitor_sock_name(const char *lxcpath, struct sockaddr_un *addr)
/* strlen("lxc/") + strlen("/monitor-sock") + 1 = 18 */
len = strlen(lxcpath) + 18;
path = alloca(len);
path = must_realloc(NULL, len);
ret = snprintf(path, len, "lxc/%s/monitor-sock", lxcpath);
if (ret < 0 || (size_t)ret >= len) {
ERROR("Failed to create name for monitor socket");