libpng loading junk at bottom of my OpenGL textures...?

I am a bit rusty with OpenGL, but I know my code is fine, but the code I found on these forums by OneSadCookie is loading the texture weird.

First the png image I am trying to load and display is a 24 bit png, no alpha. I converted a gif checkerboard that was 512x512 off the internet.
(this is only a test, I fully understand licenses of code and images)

To check 2), you could load it up in Preview, GIMP, etc. and see if any of them complain about it and/or load it correctly. I'm pretty sure GIMP will be using libpng, so if it works for GIMP, there's definitely something odd going on.

3) would be trickier to check -- if it comes with automated tests, you can run those, otherwise you can stick your own dynamic libpng into the library load path for a program like GIMP which normally dynamically links to another libpng, and check that it still works.

Ok, Just something, but could it be that zlib and libpng don't have the same byte alignment?

After opening my png files in pngtest the pngout.png is smaller in size (like by 200 bytes)

*edit*
I created a new image in GIMP, and it seems that the image is being stretched to the left as well as junk showing up on the bottom.Updated Image Link
Note, the picture is supposed to be a perfect 512 by 512, with the arrow in the center.

Ok, so I found the problem, I don't know why it even showed some of the picture. But it was the last parameter in glTexImage2D (the data parameter)
I was passing &image.data which was handle, not a pointer.