2 Commits

Author SHA1 Message Date
Julian Andres Klode 832f95f4d0 test/integration/test-srcrecord: Make executable
I actually tried to amend the previous commit, but apparently
I forgot to add the file mode change.

Gbp-Dch: ignore
2016-08-31 12:26:39 +02:00
Julian Andres Klode ce6cd75dc3 Fix segfault and out-of-bounds read in Binary fields
If a Binary field contains one or more spaces before a comma, the
code produced a segmentation fault, as it accidentally set a pointer
to 0 instead of the value of the pointer.

If the comma is at the beginning of the field, the code would
create a binStartNext that points one element before the start
of the string, which is undefined behavior.

We also need to check that we do not exit the string during the
replacement of spaces before commas: A string of the form " ,"
would normally exit the boundary of the Buffer:

	binStartNext = offset 1 ','
	binEnd = offset 0	' '
	isspace_ascii(*binEnd) = true => --binEnd
				      => binEnd = - 1

We get rid of the problem by only allowing spaces to be eliminated
if they are not the first character of the buffer:

        binStartNext = offset 1 ','
        binEnd = offset 0       ' '
        binEnd > buffer = false, isspace_ascii(*binEnd) = true
		 => exit loop
                => binEnd remains 0
2016-08-31 12:12:56 +02:00