Object Getting Stretched with glViewport / glScissor

I'm writing an iPad app where I have the screen split into four quadrants (just working on the upper left quadrant at the moment). For now, I'm drawing a simple cube. When I drew this prior to using glViewport (i.e. in the center of the screen), it had perfect proportions, albeit in the wrong place on the screen:

But then I moved on to trying to project his image in the upper left quadrant. As soon as I did that, the cube gets stretched vertically. It's in basically the right place, but wrong proportions:

Here is the code. Can anyone help me to get this back to square? I tried scaling it by the aspect ratio. That helped, but wasn't correct. I don't want to guess by trial-and-error, so I'm looking for a correct approach. Thank you!