Invalid read of size 4 at 0x55C60BC: Y2ProgramComponent::sendToExternal(std::string const&) (Y2ProgramComponent.cc:402) by 0x55C67B4: Y2ProgramComponent::sendToExternal(YCPValue const&) (Y2ProgramComponent.cc:386) by 0x55C684C: Y2ProgramComponent::evaluate(YCPValue const&) (Y2ProgramComponent.cc:135) by 0x5057BAE: ScriptingAgent::executeSubagentCommand(char const*, YCPPath const&, YCPValue const&, YCPValue const&) (ScriptingAgent.cc:623) by 0x5058A92: ScriptingAgent::Read(YCPPath const&, YCPValue const&, YCPValue const&) (ScriptingAgent.cc:196) by 0x57E0833: SCRRead3(YCPPath const&, YCPValue const&, YCPValue const&) (SCR.cc:43) by 0x57E0AF4: SCRRead(YCPPath const&) (SCR.cc:55) Address 0x211f53fc is 12 bytes inside a block of size 13 alloc'd at 0x4C29110: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x71790A9: strdup (strdup.c:42) by 0x55C60B5: Y2ProgramComponent::sendToExternal(std::string const&) (Y2ProgramComponent.cc:399) by 0x55C67B4: Y2ProgramComponent::sendToExternal(YCPValue const&) (Y2ProgramComponent.cc:386) by 0x55C684C: Y2ProgramComponent::evaluate(YCPValue const&) (Y2ProgramComponent.cc:135) by 0x5057BAE: ScriptingAgent::executeSubagentCommand(char const*, YCPPath const&, YCPValue const&, YCPValue const&) (ScriptingAgent.cc:623) by 0x5058A92: ScriptingAgent::Read(YCPPath const&, YCPValue const&, YCPValue const&) (ScriptingAgent.cc:196) by 0x57E0833: SCRRead3(YCPPath const&, YCPValue const&, YCPValue const&) (SCR.cc:43) by 0x57E0AF4: SCRRead(YCPPath const&) (SCR.cc:55) This is strange, I cannot see what is wrong with the code: https://github.com/yast/yast-core/blob/58b154edb1a8a755ca957a1155e2bd3f49243505/liby2/src/Y2ProgramComponent.cc#L402 397 char *v = NULL; 398 399 if (is_non_y2) v = strdup(value.c_str()); // no brackets 400 else v = strdup(("(" + value + ")").c_str()); 401 402 bool error = (write(to_external[1], v, strlen(v)) < 0);