mirror of
https://github.com/OpenVPN/openvpn.git
synced 2026-05-28 04:03:29 -04:00
Remove size limit for files inlined in config
As described in trac #484, the current inline file size limit of 10000 bytes is becoming an issue for some users. Since RSA keys and signature sizes are increasing, we need to adjust our limits. As #484 reports, 10000 can be too small for PKCS#12 files with 4K RSA keys. Instead of postponing this issue by increasing the static limit, dynamically increase the buffer size while reading. This keeps the memory usage limited but does allow for larger inlined files. Signed-off-by: Steffan Karger <steffan@karger.me> Acked-by: Gert Doering <gert@greenie.muc.de> Message-Id: <1430122342-11742-1-git-send-email-steffan@karger.me> URL: http://article.gmane.org/gmane.network.openvpn.devel/9607 Signed-off-by: Gert Doering <gert@greenie.muc.de>
This commit is contained in:
parent
3a840739e4
commit
e473b7c4ce
1 changed files with 10 additions and 1 deletions
|
|
@ -3698,12 +3698,21 @@ static char *
|
|||
read_inline_file (struct in_src *is, const char *close_tag, struct gc_arena *gc)
|
||||
{
|
||||
char line[OPTION_LINE_SIZE];
|
||||
struct buffer buf = alloc_buf (10000);
|
||||
struct buffer buf = alloc_buf (8*OPTION_LINE_SIZE);
|
||||
char *ret;
|
||||
while (in_src_get (is, line, sizeof (line)))
|
||||
{
|
||||
if (!strncmp (line, close_tag, strlen (close_tag)))
|
||||
break;
|
||||
if (!buf_safe (&buf, strlen(line)))
|
||||
{
|
||||
/* Increase buffer size */
|
||||
struct buffer buf2 = alloc_buf (buf.capacity * 2);
|
||||
ASSERT (buf_copy (&buf2, &buf));
|
||||
buf_clear (&buf);
|
||||
free_buf (&buf);
|
||||
buf = buf2;
|
||||
}
|
||||
buf_printf (&buf, "%s", line);
|
||||
}
|
||||
ret = string_alloc (BSTR (&buf), gc);
|
||||
|
|
|
|||
Loading…
Reference in a new issue