Merge pull request #1058 from pwkelley/development

Fixes for two segfaults
This commit is contained in:
Vicent Martí 2012-11-09 13:19:32 -08:00
commit 8a328cf442
3 changed files with 11 additions and 6 deletions

View File

@ -41,6 +41,7 @@ void git_cache_free(git_cache *cache)
git_cached_obj_decref(cache->nodes[i], cache->free_obj);
}
git_mutex_free(&cache->lock);
git__free(cache->nodes);
}

View File

@ -278,6 +278,7 @@ static int winhttp_stream_read(
{
winhttp_stream *s = (winhttp_stream *)stream;
winhttp_subtransport *t = OWNING_SUBTRANSPORT(s);
DWORD dw_bytes_read;
replay:
/* Connect if necessary */
@ -376,12 +377,14 @@ replay:
if (!WinHttpReadData(s->request,
(LPVOID)buffer,
buf_size,
(LPDWORD)bytes_read))
&dw_bytes_read))
{
giterr_set(GITERR_OS, "Failed to read data");
return -1;
}
*bytes_read = dw_bytes_read;
return 0;
}

View File

@ -42,12 +42,11 @@ GIT_INLINE(char *) git__strdup(const char *str)
GIT_INLINE(char *) git__strndup(const char *str, size_t n)
{
size_t length;
size_t length = 0;
char *ptr;
length = strlen(str);
if (n < length)
length = n;
while (length < n && str[length])
++length;
ptr = (char*)malloc(length + 1);
if (!ptr) {
@ -55,7 +54,9 @@ GIT_INLINE(char *) git__strndup(const char *str, size_t n)
return NULL;
}
memcpy(ptr, str, length);
if (length)
memcpy(ptr, str, length);
ptr[length] = '\0';
return ptr;