A: 

You might have some memory leaks.

Any function that is CF...Create() will need to have corresponding CFRelease() called on it. The following has no release:

CFDataRef newData=CFDataCreate(NULL,data,length);

I think you need to clean up after copying as well:

CFDataRef dataref=CopyImagePixels(img);

You cleaned up after newImg okay. Can't see any other leaks but check your Create/Copying that you clean up the memory afterwards.

No one in particular
Thanks for your help, its working fine.........
Vamsi