mirror of
https://git.proxmox.com/git/libgit2
synced 2025-05-10 18:28:16 +00:00
Merge pull request #1058 from pwkelley/development
Fixes for two segfaults
This commit is contained in:
commit
8a328cf442
@ -41,6 +41,7 @@ void git_cache_free(git_cache *cache)
|
|||||||
git_cached_obj_decref(cache->nodes[i], cache->free_obj);
|
git_cached_obj_decref(cache->nodes[i], cache->free_obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
git_mutex_free(&cache->lock);
|
||||||
git__free(cache->nodes);
|
git__free(cache->nodes);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -278,6 +278,7 @@ static int winhttp_stream_read(
|
|||||||
{
|
{
|
||||||
winhttp_stream *s = (winhttp_stream *)stream;
|
winhttp_stream *s = (winhttp_stream *)stream;
|
||||||
winhttp_subtransport *t = OWNING_SUBTRANSPORT(s);
|
winhttp_subtransport *t = OWNING_SUBTRANSPORT(s);
|
||||||
|
DWORD dw_bytes_read;
|
||||||
|
|
||||||
replay:
|
replay:
|
||||||
/* Connect if necessary */
|
/* Connect if necessary */
|
||||||
@ -376,12 +377,14 @@ replay:
|
|||||||
if (!WinHttpReadData(s->request,
|
if (!WinHttpReadData(s->request,
|
||||||
(LPVOID)buffer,
|
(LPVOID)buffer,
|
||||||
buf_size,
|
buf_size,
|
||||||
(LPDWORD)bytes_read))
|
&dw_bytes_read))
|
||||||
{
|
{
|
||||||
giterr_set(GITERR_OS, "Failed to read data");
|
giterr_set(GITERR_OS, "Failed to read data");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*bytes_read = dw_bytes_read;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
11
src/util.h
11
src/util.h
@ -42,12 +42,11 @@ GIT_INLINE(char *) git__strdup(const char *str)
|
|||||||
|
|
||||||
GIT_INLINE(char *) git__strndup(const char *str, size_t n)
|
GIT_INLINE(char *) git__strndup(const char *str, size_t n)
|
||||||
{
|
{
|
||||||
size_t length;
|
size_t length = 0;
|
||||||
char *ptr;
|
char *ptr;
|
||||||
|
|
||||||
length = strlen(str);
|
while (length < n && str[length])
|
||||||
if (n < length)
|
++length;
|
||||||
length = n;
|
|
||||||
|
|
||||||
ptr = (char*)malloc(length + 1);
|
ptr = (char*)malloc(length + 1);
|
||||||
if (!ptr) {
|
if (!ptr) {
|
||||||
@ -55,7 +54,9 @@ GIT_INLINE(char *) git__strndup(const char *str, size_t n)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(ptr, str, length);
|
if (length)
|
||||||
|
memcpy(ptr, str, length);
|
||||||
|
|
||||||
ptr[length] = '\0';
|
ptr[length] = '\0';
|
||||||
|
|
||||||
return ptr;
|
return ptr;
|
||||||
|
Loading…
Reference in New Issue
Block a user