Araq / ormin

Ormin -- An ORM for Nim.
MIT License
152 stars 18 forks source link

[sqlite3] crash in fillString #10

Closed codehz closed 5 years ago

codehz commented 5 years ago

when field is empty string(srcLen = 0), it crash at copyMem(unsafeAddr(dest[0]), src, srcLen) and dest[srcLen] = '\0' is not needed for nim string type

codehz commented 5 years ago

suggested implemention:

proc fillString(dest: var string; src: cstring; srcLen: int) =
  if srcLen == 0: return
  when defined(nimNoNilSeqs):
    setLen(dest, srcLen)
  else:
    if dest.isNil: dest = newString(srcLen)
    else: setLen(dest, srcLen)
  copyMem(unsafeAddr(dest[0]), src, srcLen)