From 8ca8313c4388b75efefc50ee07810b31c8ef81da Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Sun, 17 Aug 2008 19:17:24 +0000
Subject: [PATCH] Richard <news@muppet.plus.com> fixed bug in padding code

git-svn-id: svn://svn.berlios.de/openocd/trunk@923 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/flash/flash.c | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/src/flash/flash.c b/src/flash/flash.c
index 71d054f50..5193ce9a1 100644
--- a/src/flash/flash.c
+++ b/src/flash/flash.c
@@ -1052,10 +1052,9 @@ int flash_write(target_t *target, image_t *image, u32 *written, int erase)
 		{
 			u32 size_read;
 
-			if (buffer_size - run_size <= image->sections[section].size - section_offset)
-				size_read = buffer_size - run_size;
-			else
-				size_read = image->sections[section].size - section_offset;
+			size_read = run_size - buffer_size;
+			if (size_read > image->sections[section].size - section_offset)
+			    size_read = image->sections[section].size - section_offset;
 
 			if ((retval = image_read_section(image, section, section_offset,
 					size_read, buffer + buffer_size, &size_read)) != ERROR_OK || size_read == 0)
@@ -1067,7 +1066,7 @@ int flash_write(target_t *target, image_t *image, u32 *written, int erase)
 			
 			/* see if we need to pad the section */
 			while (padding[section]--)
-				buffer[size_read++] = 0xff;
+				 (buffer+buffer_size)[size_read++] = 0xff;
 			
 			buffer_size += size_read;
 			section_offset += size_read;
-- 
GitLab