Use TLS buffer in ACL<->text conversion
* sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer. (aclfromtext32): Ditto. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
parent
62fe4404a7
commit
3b8372c1f2
|
@ -1,3 +1,8 @@
|
||||||
|
2015-12-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* sec_acl.cc (acltotext32): Use tmp_pathbuf rather than stack buffer.
|
||||||
|
(aclfromtext32): Ditto.
|
||||||
|
|
||||||
2015-12-24 Corinna Vinschen <corinna@vinschen.de>
|
2015-12-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* sec_acl.cc: Cosmetic changes.
|
* sec_acl.cc: Cosmetic changes.
|
||||||
|
|
|
@ -1432,7 +1432,8 @@ acltotext32 (aclent_t *aclbufp, int aclcnt)
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
char buf[32000];
|
tmp_pathbuf tp;
|
||||||
|
char *buf = tp.c_get ();
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
bool first = true;
|
bool first = true;
|
||||||
|
|
||||||
|
@ -1502,16 +1503,17 @@ permfromstr (char *perm)
|
||||||
extern "C" aclent_t *
|
extern "C" aclent_t *
|
||||||
aclfromtext32 (char *acltextp, int *)
|
aclfromtext32 (char *acltextp, int *)
|
||||||
{
|
{
|
||||||
if (!acltextp)
|
if (!acltextp || strlen (acltextp) > NT_MAX_PATH)
|
||||||
{
|
{
|
||||||
set_errno (EINVAL);
|
set_errno (EINVAL);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
char buf[strlen (acltextp) + 1];
|
tmp_pathbuf tp;
|
||||||
aclent_t lacl[MAX_ACL_ENTRIES];
|
aclent_t lacl[MAX_ACL_ENTRIES];
|
||||||
memset (lacl, 0, sizeof lacl);
|
memset (lacl, 0, sizeof lacl);
|
||||||
int pos = 0;
|
int pos = 0;
|
||||||
strcpy (buf, acltextp);
|
char *buf = tp.t_get ();
|
||||||
|
stpcpy (buf, acltextp);
|
||||||
char *lasts;
|
char *lasts;
|
||||||
cyg_ldap cldap;
|
cyg_ldap cldap;
|
||||||
for (char *c = strtok_r (buf, ",", &lasts);
|
for (char *c = strtok_r (buf, ",", &lasts);
|
||||||
|
|
Loading…
Reference in New Issue