lxml/lxml — pull request #128 by HenryHu (2013-12-17 07:45:36+00:00)
Title: use correct array bound when accessing c_namespaces

When iterating through c_namespaces in \_handleSaxTargetStart(), the code used incorrect array bound. It should use c_nb_namespaces, but it used c_nb_attributes.
This caused segmentation fault when c_nb_attributes > c_nb_namespaces.

Test case attached. This case segfault at latest version. Sometimes it throws UnicodeDecodeError instead, because the out-of-bound access luckily hit some data.
```python
from lxml import etree

s = ""

class EchoTarget(object):
def start(self, tag, attrib):
print("start %s %r" % (tag, dict(attrib)))
def end(self, tag):
print("end %s" % tag)
def data(self, data):
print("data %r" % data)
def comment(self, text):
print("comment %s" % text)
def close(self):
print("close")
return "closed!"

parser = etree.XMLParser(target = EchoTarget())
parser.feed(s)
result = parser.close()
print(result)
```