Ukraine Office: +38 (063) 50 74 707

USA Office: +1 (212) 203-8264

Manual Testing

Ensure the highest quality for your software with our manual testing services.

Mobile Testing

Optimize your mobile apps for flawless performance across all devices and platforms with our comprehensive mobile testing services.

Automated Testing

Enhance your software development with our automated testing services, designed to boost efficiency.

Functional Testing

Refine your application’s core functionality with our functional testing services

VIEW ALL SERVICES 

Discussion – 

0

Discussion – 

0

How One Can Detect Writing to Uninitialized Memory

How-One-Can-Detect-Writing-to-Uninitialized-Memory

There is nothing worse than an error that comes from nowhere and does not correspond to any code execution path. If you find yourself in this situation, it is most likely due to writing to uninitialized memory, also known as writing to a random address (wild write). The reason for such errors lies in the uninitialized pointer, which by chance indicates a correct memory area. This usually happens with stack pointers or, otherwise stated, with local variables. As the stack constantly changes when you execute your program, nothing can tell you where the uninitialized pointer points, which is why it may seem random.

 

When debuggers are asked to help to resolve this insidious problem, they always deal with completely confused programmers who claim to have tried literally all the ways to identify it. Since they have already done “everything”, they desperately want to know what the debuggers will conjure. They respond by saying they are about to apply the patented and registered Magic Way of Debugging Uninitialized Memory by the Ninja Technique (MNUMDT). Everyone is going to look at this and shift in armchairs, waiting for a miracle, especially when the debugger mentions that MNUMDT will work only if two of the least experienced developers of the group help him.

 

Website testing service is available to ensure that e-commerce site works as intended. This is used to check content of a webpage to make sure that it is quite appealing to the visitors.

 

At that moment, two junior programmers are approaching the debugging person, showing in every way that they intend to carry their burden with dignity, and the debugger is describing MNUMDT to them:

 

  • each of us is assigned to work with one third of the code;
  • everyone should carefully read each line of code, looking for all the declarations of pointers;
  • if we find an uninitialized pointer declaration, we initialize it with the value NULL;
  • when every memory allocation call is detected, not for classes, after it we add a memset or ZeroMemory call to zero the memory;
  • after any memory is freed, we again assign a zero value to the pointer;
  • when finding a memset call or a line copy operation, we need to check that each operation correctly counts the size of the memory block;
  • each variable of the class member must be initialized in the constructor (s).

 

Listening to the MNUMDT rules, the guys are ready to run out of the room, but the leader does not let them do it. If you think this is gross violence, you are absolutely right: it is.

 

0 Comments

You May Also Like