mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-15 08:05:20 +00:00
cgmanager: cgm_set: return the length we found
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com> Acked-by: Stéphane Graber <stgraber@ubuntu.com>
This commit is contained in:
parent
e0f2f5c764
commit
87b86add6c
@ -248,6 +248,7 @@ static char *cgm_get_cgroup(struct lxc_handler *handler, const char *subsystem)
|
|||||||
int cgm_get(const char *filename, char *value, size_t len, const char *name, const char *lxcpath)
|
int cgm_get(const char *filename, char *value, size_t len, const char *name, const char *lxcpath)
|
||||||
{
|
{
|
||||||
char *result, *controller, *key, *cgroup;
|
char *result, *controller, *key, *cgroup;
|
||||||
|
size_t newlen;
|
||||||
|
|
||||||
controller = alloca(strlen(filename)+1);
|
controller = alloca(strlen(filename)+1);
|
||||||
strcpy(controller, filename);
|
strcpy(controller, filename);
|
||||||
@ -267,11 +268,18 @@ int cgm_get(const char *filename, char *value, size_t len, const char *name, con
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
free(cgroup);
|
free(cgroup);
|
||||||
|
newlen = strlen(result);
|
||||||
strncpy(value, result, len);
|
strncpy(value, result, len);
|
||||||
if (strlen(result) >= len)
|
if (newlen >= len) {
|
||||||
value[len-1] = '\0';
|
value[len-1] = '\0';
|
||||||
|
newlen = len-1;
|
||||||
|
} else if (newlen+1 < len) {
|
||||||
|
// cgmanager doesn't add eol to last entry
|
||||||
|
value[newlen++] = '\n';
|
||||||
|
value[newlen] = '\0';
|
||||||
|
}
|
||||||
nih_free(result);
|
nih_free(result);
|
||||||
return len;
|
return newlen;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int cgm_do_set(const char *controller, const char *file,
|
static int cgm_do_set(const char *controller, const char *file,
|
||||||
|
Loading…
Reference in New Issue
Block a user