Hi, please can you help me with following?

I'm trying to combine scotty + ffi but it returns 'Segmentation fault/access violation in generated code'.

The thing is, that when I run only the ffi setmodulestring function, everything works fine. When I call it from scotty I get the segfault. I have hardcoded the 'param' and 'value' parameters in setmodulestring function just to be sure that the input is correct.

scotty code:

main = scotty 3000 $ do
middleware logStdoutDev

post "/setstringtest" $ do
let param = "FilePath"
let value = "C:/dev/misc/haskell/services/FM"
result <- liftIO $ FM.setmodulestring param value
text "done"

ffi code:

setmodulestring :: String -> String -> IO CInt
setmodulestring param value = do
cParam <- newCString param
cValue <- newCString value
let cParamLength = fromIntegral $ length param ::CInt
   cValueLength = fromIntegral $ length value ::CInt
   setVarInArray = (-1)::CInt 
result <- c_setmodulestring cParam cParamLength cValue cValueLength setVarInArray
return result


Any comments/ideas more than appreciated.

Cheers,
Miro