Mercurial > code
changeset 152:54976019a5a8
Fix problem in pack where cv is set with uninitialized btyes
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 27 Jun 2012 11:23:54 +0200 |
parents | cedd831d02ff |
children | a6a7cd08be72 |
files | directory.c pack.c |
diffstat | 2 files changed, 5 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/directory.c Fri Jun 22 22:59:46 2012 +0200 +++ b/directory.c Wed Jun 27 11:23:54 2012 +0200 @@ -141,4 +141,4 @@ free(dir->ents); free(dir); -} \ No newline at end of file +}
--- a/pack.c Fri Jun 22 22:59:46 2012 +0200 +++ b/pack.c Wed Jun 27 11:23:54 2012 +0200 @@ -207,7 +207,9 @@ conv = pack_getconvert_by_size(size); for (i = 0; i < length; ++i) { - cv = arr[i * size]; + cv = 0; + memcpy(&cv, &arr[i * size], size); + if (conv != NULL) conv(&cv); @@ -394,6 +396,7 @@ continue; for (i = 0; i < nelem; ++i) { + memset(&ptr[tocopy * i], 0, tocopy); if (fread(&ptr[tocopy * i], tocopy, 1, fp) <= 0) return -1;