summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrunge <runge>2005-05-15 12:38:36 +0000
committerrunge <runge>2005-05-15 12:38:36 +0000
commitbe5b1296e4aa4d8a51cd709853408ec0cd7b768b (patch)
tree44a7f3d9801a53c627436dd4a478a3b8807b6870
parent320edc794f0c9e30512524187617ffc8887602ca (diff)
downloadlibtdevnc-be5b1296.tar.gz
libtdevnc-be5b1296.zip
libvncserver/{main.c,rfbserver.c}: fix a couple more CopyRect memory leaks
-rw-r--r--libvncserver/main.c1
-rw-r--r--libvncserver/rfbserver.c4
2 files changed, 3 insertions, 2 deletions
diff --git a/libvncserver/main.c b/libvncserver/main.c
index 4e59c98..bec7e2f 100644
--- a/libvncserver/main.c
+++ b/libvncserver/main.c
@@ -164,6 +164,7 @@ void rfbDoCopyRegion(rfbScreenInfoPtr screen,sraRegionPtr copyRegion,int dx,int
memmove(out,in,widthInBytes);
}
}
+ sraRgnReleaseIterator(i);
rfbScheduleCopyRegion(screen,copyRegion,dx,dy);
}
diff --git a/libvncserver/rfbserver.c b/libvncserver/rfbserver.c
index 7790522..f3aaa30 100644
--- a/libvncserver/rfbserver.c
+++ b/libvncserver/rfbserver.c
@@ -1315,8 +1315,6 @@ rfbSendFramebufferUpdate(cl, givenUpdateRegion)
goto updateFailed;
}
- sraRgnDestroy(updateCopyRegion);
-
for(i = sraRgnGetIterator(updateRegion); sraRgnIteratorNext(i,&rect);){
int x = rect.x1;
int y = rect.y1;
@@ -1381,6 +1379,7 @@ updateFailed:
if(i)
sraRgnReleaseIterator(i);
sraRgnDestroy(updateRegion);
+ sraRgnDestroy(updateCopyRegion);
return result;
}
@@ -1434,6 +1433,7 @@ rfbSendCopyRegion(cl, reg, dx, dy)
+= sz_rfbFramebufferUpdateRectHeader + sz_rfbCopyRect;
}
+ sraRgnReleaseIterator(i);
return TRUE;
}