[vox-tech] anything wrong with this code?

Brian Lavender brian at brie.com
Fri May 28 14:03:44 PDT 2010


On Thu, May 27, 2010 at 08:48:06PM -0700, Bill Broadley wrote:
> On 05/27/2010 08:35 PM, Chanoch (Ken) Bloom wrote:
> > On Thu, 2010-05-27 at 22:08 -0400, Hai Yi wrote:
> >> hi there:
> >>
> >> can anyone look at these two small c++ snippets to see what's wrong
> >> with them? I was interviewed with them...
> 
> Out of curiosity, where?  (feel free to not answer)
> 
> >> 1.
> >> A* createA(){ return new A();}
> >>      void fun(){createA();}
> >>      What's wrong with the above code?
> >
> > It leaks memory.

Yeah, you know why the interviewer asked that? Either one of his
employees or _he_ made the error and it started dropping memory on the
floor, not to mention losing access to previously allocated variables. 

It looks like a nice tool for a little bit of nastiness though.
Overwrite a variable, then later creatively drop into that memory
location and get your stash back!

> 
> Is A defined?  Is it that A is allocated but the return value isn't 
> checked (for an allocation failure)?  Or that the pointer isn't used? Or 
> that it leaks?


-- 
Brian Lavender
http://www.brie.com/brian/

"There are two ways of constructing a software design. One way is to
make it so simple that there are obviously no deficiencies. And the other
way is to make it so complicated that there are no obvious deficiencies."

Professor C. A. R. Hoare
The 1980 Turing award lecture


More information about the vox-tech mailing list