mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-20 10:12:15 +01:00
We were leaking a file descriptor if Tor started with a zero-length
cached-descriptors file. Patch by freddy77; bugfix on 0.1.2. svn:r13488
This commit is contained in:
parent
7ae3f6a491
commit
740097a65e
@ -13,6 +13,8 @@ Changes in version 0.2.0.20-?? - 2008-02-??
|
||||
- Directory mirrors no longer include a guess at the client's IP
|
||||
address if the connection appears to be coming from the same /24
|
||||
network; it was producing too many wrong guesses.
|
||||
- We were leaking a file descriptor if Tor started with a zero-length
|
||||
cached-descriptors file. Patch by freddy77; bugfix on 0.1.2.
|
||||
|
||||
|
||||
Changes in version 0.2.0.19-alpha - 2008-02-09
|
||||
|
@ -129,6 +129,7 @@ typedef struct tor_mmap_impl_t {
|
||||
size_t mapping_size; /**< Size of the actual mapping. (This is this file
|
||||
* size, rounded up to the nearest page.) */
|
||||
} tor_mmap_impl_t;
|
||||
|
||||
/** Try to create a memory mapping for <b>filename</b> and return it. On
|
||||
* failure, return NULL. Sets errno properly, using ERANGE to mean
|
||||
* "empty file". */
|
||||
@ -164,21 +165,20 @@ tor_mmap_file(const char *filename)
|
||||
* return NULL, and bad things will happen. So just fail. */
|
||||
log_info(LD_FS,"File \"%s\" is empty. Ignoring.",filename);
|
||||
errno = ERANGE;
|
||||
close(fd);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
string = mmap(0, size, PROT_READ, MAP_PRIVATE, fd, 0);
|
||||
close(fd);
|
||||
if (string == MAP_FAILED) {
|
||||
int save_errno = errno;
|
||||
close(fd);
|
||||
log_warn(LD_FS,"Could not mmap file \"%s\": %s", filename,
|
||||
strerror(errno));
|
||||
errno = save_errno;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
close(fd);
|
||||
|
||||
res = tor_malloc_zero(sizeof(tor_mmap_impl_t));
|
||||
res->base.data = string;
|
||||
res->base.size = filesize;
|
||||
|
Loading…
Reference in New Issue
Block a user