mirror of
https://github.com/moparisthebest/curl
synced 2024-11-12 04:25:08 -05:00
- David Binderman found a memory and fd leak in lib/gtls.c:load_file()
(https://bugzilla.novell.com/523919). When looking at the code, I found that also the ptr pointer can leak.
This commit is contained in:
parent
650543a042
commit
4c207a004c
4
CHANGES
4
CHANGES
@ -6,6 +6,10 @@
|
|||||||
|
|
||||||
Changelog
|
Changelog
|
||||||
|
|
||||||
|
Michal Marek (22 Jul 2009)
|
||||||
|
- David Binderman found a memory and fd leak in lib/gtls.c:load_file()
|
||||||
|
(https://bugzilla.novell.com/523919). When looking at the code, I found
|
||||||
|
that also the ptr pointer can leak.
|
||||||
Kamil Dudka (20 Jul 2009)
|
Kamil Dudka (20 Jul 2009)
|
||||||
- Claes Jakobsson improved the support for client certificates handling
|
- Claes Jakobsson improved the support for client certificates handling
|
||||||
in NSS-powered libcurl. Now the client certificates can be selected
|
in NSS-powered libcurl. Now the client certificates can be selected
|
||||||
|
@ -32,6 +32,7 @@ This release includes the following bugfixes:
|
|||||||
o curl -o - sends data to stdout using binary mode on windows
|
o curl -o - sends data to stdout using binary mode on windows
|
||||||
o fixed the separators for "array" style string that CURLINFO_CERTINFO returns
|
o fixed the separators for "array" style string that CURLINFO_CERTINFO returns
|
||||||
o auth problem over several hosts with re-used connection
|
o auth problem over several hosts with re-used connection
|
||||||
|
o fix leak in gtls code
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
@ -44,6 +45,6 @@ advice from friends like these:
|
|||||||
Andre Guibert de Bruet, Mike Crowe, Claes Jakobsson, John E. Malmberg,
|
Andre Guibert de Bruet, Mike Crowe, Claes Jakobsson, John E. Malmberg,
|
||||||
Aaron Oneal, Igor Novoseltsev, Eric Wong, Bill Hoffman, Daniel Steinberg,
|
Aaron Oneal, Igor Novoseltsev, Eric Wong, Bill Hoffman, Daniel Steinberg,
|
||||||
Fabian Keil, Michal Marek, Reuven Wachtfogel, Markus Koetter,
|
Fabian Keil, Michal Marek, Reuven Wachtfogel, Markus Koetter,
|
||||||
Constantine Sapuntzakis
|
Constantine Sapuntzakis, David Binderman
|
||||||
|
|
||||||
Thanks! (and sorry if I forgot to mention someone)
|
Thanks! (and sorry if I forgot to mention someone)
|
||||||
|
15
lib/gtls.c
15
lib/gtls.c
@ -148,17 +148,22 @@ static gnutls_datum load_file (const char *file)
|
|||||||
long filelen;
|
long filelen;
|
||||||
void *ptr;
|
void *ptr;
|
||||||
|
|
||||||
if (!(f = fopen(file, "r"))
|
if (!(f = fopen(file, "r")))
|
||||||
|| fseek(f, 0, SEEK_END) != 0
|
return loaded_file;
|
||||||
|
if (fseek(f, 0, SEEK_END) != 0
|
||||||
|| (filelen = ftell(f)) < 0
|
|| (filelen = ftell(f)) < 0
|
||||||
|| fseek(f, 0, SEEK_SET) != 0
|
|| fseek(f, 0, SEEK_SET) != 0
|
||||||
|| !(ptr = malloc((size_t)filelen))
|
|| !(ptr = malloc((size_t)filelen)))
|
||||||
|| fread(ptr, 1, (size_t)filelen, f) < (size_t)filelen) {
|
goto out;
|
||||||
return loaded_file;
|
if (fread(ptr, 1, (size_t)filelen, f) < (size_t)filelen) {
|
||||||
|
free(ptr);
|
||||||
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
loaded_file.data = ptr;
|
loaded_file.data = ptr;
|
||||||
loaded_file.size = (unsigned int)filelen;
|
loaded_file.size = (unsigned int)filelen;
|
||||||
|
out:
|
||||||
|
fclose(f);
|
||||||
return loaded_file;
|
return loaded_file;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user