valgrind Conditional jump or move depends on uninitialised value(s) , does this indicate memory leak?

c, c++, valgrind

Solution

No, it means that you are accessing memory that hasn't been initialized:

int main()
{
     int unitialized;
     std::cout << unitialized << std::endl;
}

would trigger this error.

Slightly more common would be:

struct X 
{
     X() : i(42) { }
  private:
     int i;
     int* forgotten; // oops, not initialized
};

Lastly, this frequently happens with malloc based code, when you don't use `memset` to clear the whole buffer. So,

- malloc a buffer size m

- read (e.g. from a socket) n bytes

- write m bytes to a file; (m-n) bytes wouldn't have been initialized

Problem

I am facing a memory leak problem in the code, while its running, the heap goes on increasing to maximum and i need to restart the service, I ran top command and see that the heap is increasing whenever im invoking a scenario in the service. I ran the service with valgrind , ``` valgrind --log-file=log-feb19.txt --leak-check=full --show-reachable=yes --track-origins=yes myservice ``` I donot see any definitely lost or possibly lost blocks while iam running the scenarios but i see a lot of Conditional jump or move depends on uninitialised value(s) errors. Do these count for a memory leak? Example of what i am getting: ``` ==27278== Conditional jump or move depends on uninitialised value(s) ==27278== at 0xC90D91E: xcsFreeMemFn (in /apps/opt/mqm/lib64/libmqmcs_r.so) ``` ........ ``` ==27278== Uninitialised value was created by a heap allocation ==27278== at 0x4A078B8: malloc (vg_replace_malloc.c:270) ==27278== by 0xC90E32F: xcsGetMemFn (in /apps/opt/mqm/lib64/libmqmcs_r.so) ``` Can someone help.

Original source

Related problems