[ Avaa Bypassed ]




Upload:

Command:

hmhc3928@18.222.102.71: ~ $
#!/usr/bin/python -u
import string, sys, time
try:
    from _thread import get_ident
except:
    from thread import get_ident
from threading import Thread, Lock

import libxml2

THREADS_COUNT = 15

failed = 0

class ErrorHandler:

    def __init__(self):
        self.errors = []
        self.lock = Lock()

    def handler(self,ctx,str):
        self.lock.acquire()
        self.errors.append(str)
        self.lock.release()

def getLineNumbersDefault():
    old = libxml2.lineNumbersDefault(0)
    libxml2.lineNumbersDefault(old)
    return old

def test(expectedLineNumbersDefault):
    time.sleep(1)
    global failed
    # check a per thread-global
    if expectedLineNumbersDefault != getLineNumbersDefault():
        failed = 1
        print("FAILED to obtain correct value for " \
              "lineNumbersDefault in thread %d" % get_ident())
    # check ther global error handler 
    # (which is NOT per-thread in the python bindings)
    try:
        doc = libxml2.parseFile("bad.xml")
    except:
        pass
    else:
        assert "failed"

# global error handler
eh = ErrorHandler()
libxml2.registerErrorHandler(eh.handler,"")

# set on the main thread only
libxml2.lineNumbersDefault(1) 
test(1)
ec = len(eh.errors)
if ec == 0:
    print("FAILED: should have obtained errors")
    sys.exit(1)

ts = []
for i in range(THREADS_COUNT):
    # expect 0 for lineNumbersDefault because
    # the new value has been set on the main thread only
    ts.append(Thread(target=test,args=(0,)))
for t in ts:
    t.start()
for t in ts:
    t.join()

if len(eh.errors) != ec+THREADS_COUNT*ec:
    print("FAILED: did not obtain the correct number of errors")
    sys.exit(1)

# set lineNumbersDefault for future new threads
libxml2.thrDefLineNumbersDefaultValue(1)
ts = []
for i in range(THREADS_COUNT):
    # expect 1 for lineNumbersDefault
    ts.append(Thread(target=test,args=(1,)))
for t in ts:
    t.start()
for t in ts:
    t.join()

if len(eh.errors) != ec+THREADS_COUNT*ec*2:
    print("FAILED: did not obtain the correct number of errors")
    sys.exit(1)

if failed:
    print("FAILED")
    sys.exit(1)

# Memory debug specific
libxml2.cleanupParser()
if libxml2.debugMemory(1) == 0:
    print("OK")
else:
    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
    libxml2.dumpMemory()

Filemanager

Name Type Size Permission Actions
TODO File 1.58 KB 0644
apibuild.py File 79.75 KB 0755
attribs.py File 819 B 0755
build.py File 1.51 KB 0755
compareNodes.py File 1.48 KB 0755
ctxterror.py File 1.29 KB 0755
cutnpaste.py File 1.26 KB 0755
dtdvalid.py File 619 B 0755
error.py File 1.04 KB 0755
inbuf.py File 498 B 0755
index.py File 32.14 KB 0755
indexes.py File 2.9 KB 0755
input_callback.py File 5.01 KB 0755
libxml2class.txt File 22.42 KB 0644
nsdel.py File 1.55 KB 0755
outbuf.py File 3.07 KB 0755
push.py File 769 B 0755
pushSAX.py File 1.46 KB 0755
pushSAXhtml.py File 1.57 KB 0755
python.html File 19.46 KB 0644
reader.py File 12.23 KB 0755
reader2.py File 5.22 KB 0755
reader3.py File 4.06 KB 0755
reader4.py File 1.15 KB 0755
reader5.py File 1.22 KB 0755
reader6.py File 2.61 KB 0755
reader7.py File 1.72 KB 0755
reader8.py File 683 B 0755
readererr.py File 1.25 KB 0755
readernext.py File 2.43 KB 0755
regexp.py File 716 B 0755
relaxng.py File 1.17 KB 0755
resolver.py File 857 B 0755
schema.py File 1.28 KB 0755
serialize.py File 4.18 KB 0755
sync.py File 3.44 KB 0755
thread2.py File 2.25 KB 0755
tst.py File 587 B 0755
tstLastError.py File 2.83 KB 0755
tstURI.py File 1.08 KB 0755
tstmem.py File 720 B 0755
tstxpath.py File 1.43 KB 0755
validDTD.py File 1.2 KB 0755
validRNG.py File 1.9 KB 0755
validSchemas.py File 2.02 KB 0755
validate.py File 1.68 KB 0755
walker.py File 2.35 KB 0755
xpath.py File 1.17 KB 0755
xpathext.py File 1.1 KB 0755
xpathleak.py File 1.53 KB 0755
xpathns.py File 552 B 0755
xpathret.py File 1.29 KB 0755