1 patch for repository http://code.haskell.org/gstreamer:

Sat Jun  8 18:57:24 EEST 2013  Roman Cheplyaka <r...@ro-che.info>
  * GStreamer.Core.Parse: initialize GError with NULL
  
  When passing a GError to a parse* function, it is important to set its
  contents to NULL. GStreamer has assertions of the form
  
      g_return_val_if_fail (error == NULL || *error == NULL, NULL);
      
  Violating them may lead to a segfault when assertions are enabled.
[GStreamer.Core.Parse: initialize GError with NULL
Roman Cheplyaka <r...@ro-che.info>**20130608155724
 Ignore-this: aa4e7c8ddcf0e3117421909d5bf5044b
 
 When passing a GError to a parse* function, it is important to set its
 contents to NULL. GStreamer has assertions of the form
 
     g_return_val_if_fail (error == NULL || *error == NULL, NULL);
     
 Violating them may lead to a segfault when assertions are enabled.
] hunk ./Media/Streaming/GStreamer/Core/Parse.chs 42
 
 {# context lib = "gstreamer" prefix = "gst" #}
 
+-- N.B. When passing a GError to a parse* function, it is important to set its
+-- contents to NULL. GStreamer has assertions of the form
+-- 
+--     g_return_val_if_fail (error == NULL || *error == NULL, NULL);
+--     
+-- Violating them may lead to a segfault when assertions are enabled.
+
 parseLaunch :: String
             -> IO (Maybe Element, Maybe GError)
 parseLaunch pipelineDescription =
hunk ./Media/Streaming/GStreamer/Core/Parse.chs 54
     withUTFString pipelineDescription $ \cPipelineDescription ->
         alloca $ \gErrorPtr ->
-            do element <- {# call parse_launch #} cPipelineDescription (castPtr gErrorPtr) >>=
+            do poke gErrorPtr nullPtr
+               element <- {# call parse_launch #} cPipelineDescription (castPtr gErrorPtr) >>=
                               maybePeek takeObject
                gError <- peek gErrorPtr >>= maybePeek peek
                return (element, gError)
hunk ./Media/Streaming/GStreamer/Core/Parse.chs 65
 parseLaunchFromArgs args =
     withUTFStringArray0 args $ \cArgs ->
         alloca $ \gErrorPtr ->
-            do element <- {# call parse_launchv #} (castPtr cArgs) (castPtr gErrorPtr) >>=
+            do poke gErrorPtr nullPtr
+               element <- {# call parse_launchv #} (castPtr cArgs) (castPtr gErrorPtr) >>=
                               maybePeek takeObject
                gError <- peek gErrorPtr >>= maybePeek peek
                return (element, gError)
hunk ./Media/Streaming/GStreamer/Core/Parse.chs 77
 parseBinFromDescription binDescription ghostUnconnectedPads =
     withUTFString binDescription $ \cBinDescription ->
         alloca $ \gErrorPtr ->
-            do element <- {# call parse_bin_from_description #} cBinDescription
+            do poke gErrorPtr nullPtr
+               element <- {# call parse_bin_from_description #} cBinDescription
                                                                 (fromBool ghostUnconnectedPads)
                                                                 (castPtr gErrorPtr) >>=
                               maybePeek takeObject

Attachment: gstreamer_core_parse_-initialize-gerror-with-null.dpatch
Description: A darcs patch for your repository!

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. A cloud service to automate IT design, transition and operations
2. Dashboards that offer high-level views of enterprise services
3. A single system of record for all IT processes
http://p.sf.net/sfu/servicenow-d2d-j
_______________________________________________
Gtk2hs-devel mailing list
Gtk2hs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gtk2hs-devel

Reply via email to