From db9439cdc7b684f2f1d0f1a4ca0a33a6c114d9ea Mon Sep 17 00:00:00 2001 From: perry.werneck@gmail.com Date: Mon, 9 Apr 2012 20:09:40 +0000 Subject: [PATCH] Corrigindo erro no gerenciamento de memoria --- selection.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/selection.c b/selection.c index 786ecf4..8eedc7c 100644 --- a/selection.c +++ b/selection.c @@ -428,24 +428,29 @@ LIB3270_EXPORT char * lib3270_get_text(H3270 *h, int offset, int len) buffer = malloc(len+1); ptr = buffer; - while(len-- > 0) + trace("len=%d buffer=%p",len,buffer); + + while(len > 0) { if(h->text[offset].attr & LIB3270_ATTR_CG) *ptr = ' '; else if(h->text[offset].chr) *ptr = h->text[offset].chr; else - *ptr = " "; + *ptr = ' '; ptr++; offset++; + len--; - if((offset%h->cols) == 0) + if((offset%h->cols) == 0 && len > 0) { *(ptr++) = '\n'; len--; } } + trace("len=%d buffer=%p pos=%d",len,buffer,ptr-buffer); + *ptr = 0; return buffer; -- libgit2 0.21.2