[
http://dev.sourcefabric.org/browse/LS-578?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18247#action_18247
]
David Baelde commented on LS-578:
---------------------------------
I grepped a little bit, noticed a few assert with side effects. Below is a list
of potentially dangerous ones. Some are clearly VERY BAD (read/write/send),
some are probably harmless (force), and some may be missing (please have a look
at all uses of assert, see if you can spot more problematic ones).
$ hg grep assert . | grep "force\|alarm\|send\|write\|read\|to_s16le"
liquidsoap/src/stream/frame.ml:2569: assert (match force with Some c
-> c = content | None -> true) ;
liquidsoap/src/stream/frame.ml:2569: assert (match force
with Some c -> c = content | None -> true) ;
liquidsoap/src/conversions/drop.ml:2555: assert (layer_end = Lazy.force
Frame.size) ;
liquidsoap/src/conversions/drop.ml:2555: assert (layer_end = Lazy.force
Frame.size) ;
liquidsoap/src/conversions/drop.ml:2555: assert (layer_end = Lazy.force
Frame.size) ;
ocaml-duppy/src/duppy.ml:2550: assert(not (Mutex.try_lock s.ready_m)) ;
liquidsoap/src/conversions/mean.ml:2539: assert (layer_end = Lazy.force
Frame.size) ;
liquidsoap/src/io/oss_io.ml:2331: assert (Unix.write fd s 0 r = r)
liquidsoap/src/outputs/graphics_out.ml:2331: assert (stop = Lazy.force
Frame.size) ;
liquidsoap/src/outputs/output.ml:2331: assert (source#is_ready) ;
liquidsoap/src/outputs/output.ml:2331: | [i] -> assert (i=Lazy.force
Frame.size || not infallible)
liquidsoap/src/outputs/sdl_out.ml:2331: assert (stop = Lazy.force
Frame.size) ;
liquidsoap/src/operators/sequence.ml:2310: assert (a#is_ready) ; (*
Our #is_ready ensures that. *)
liquidsoap/src/operators/add.ml:2309: assert (end_pos = Lazy.force
Frame.size) ;
liquidsoap/src/protocols/mpd.ml:2309: assert (Unix.send socket s 0 len []
= len)
liquidsoap/src/protocols/say.ml:2309: assert (0 = Unix.alarm
(int_of_float (maxtime -. time ()))) ;
liquidsoap/src/stream/aFrame.ml:2309: assert (stop = Lazy.force size) ;
liquidsoap/src/stream/vFrame.ml:2309: assert (stop = Lazy.force
Frame.size) ;
ocaml-mm/external/ffmpeg/ffmpeg_stubs.c:2168:
assert(av_write_frame(ffe->format_ctx, &pkt) == 0);
ocaml-mm/external/ffmpeg/ffmpeg_stubs.c:2168:
assert(av_write_frame(ffe->format_ctx, &pkt) == 0);
ocaml-mm/src/IO.ml:2168: assert (self#stream_write s 0 len = len)
ocaml-mm/src/audio.ml:2168: assert (n <= read_space t);
ocaml-mm/src/audio.ml:2168: assert (n <= write_space t);
ocaml-mm/src/audio.ml:2168: assert (len <= read_space t);
ocaml-mm/src/audio.ml:2168: assert (len <= write_space t);
ocaml-mm/src/ringbuffer.ml:2168: assert (n <= read_space t);
ocaml-mm/src/ringbuffer.ml:2168: assert (n <= write_space t);
ocaml-mm/src/ringbuffer.ml:2168: assert (len <= read_space t);
ocaml-mm/src/ringbuffer.ml:2168: assert (len <= write_space t);
liquidsoap/src/io/opal_io_c.c:1428: assert(write(fd, &n, sizeof(int)) ==
sizeof(int));
liquidsoap/src/io/opal_io_c.c:1428: assert(read(fd, &n, sizeof(int)) ==
sizeof(int));
liquidsoap/src/io/opal_io_c.c:1428: assert(!pipe(write_fd));
liquidsoap/src/tools/ringbuffer.ml:1310: assert (n <= read_space t) ;
liquidsoap/src/tools/ringbuffer.ml:1310: assert (n <= write_space t) ;
liquidsoap/src/tools/ringbuffer.ml:1310: assert (len <= read_space t) ;
liquidsoap/src/tools/ringbuffer.ml:1310: assert (len <= write_space t) ;
liquidsoap/src/synth/synth.ml:1032: assert (Unix.read fd s 0 n = n);
liquidsoap/src/formats/midiformat.ml:825: assert (Unix.read fd buf 0 4 = 4);
liquidsoap/src/formats/midiformat.ml:825: assert (Unix.read fd buf 0 n = n);
liquidsoap/src/stream/float_pcm.ml:755: assert (n <= read_space t);
liquidsoap/src/stream/float_pcm.ml:755: assert (n <= write_space t);
liquidsoap/src/stream/float_pcm.ml:755: assert (len <= read_space t);
liquidsoap/src/stream/float_pcm.ml:755: assert (len <= read_space t);
ocaml-jack/examples/simple_client/simple_client.ml:0: assert
((Ringbuffer.Float.write outbuf buf 0 n) = n)
ocaml-jack/src/jack_stubs.c:0: assert(!pthread_mutex_init(rb->mutex, NULL));
ocaml-jack/src/jack_stubs.c:0: assert(!pthread_mutex_init(cc->buffer_mutex,
NULL));
ocaml-jack/src/jack_stubs.c:0:
assert(!pthread_cond_init(cc->buffer_data_ready, NULL));
ocaml-mad/src/mad.ml:0: assert (n = Unix.read f ans 0 n) ;
> Review assert so that the code runs fine in -noassert
> -----------------------------------------------------
>
> Key: LS-578
> URL: http://dev.sourcefabric.org/browse/LS-578
> Project: Liquidsoap
> Issue Type: Bug
> Reporter: David Baelde
>
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://dev.sourcefabric.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
------------------------------------------------------------------------------
All the data continuously generated in your IT infrastructure contains a
definitive record of customers, application performance, security
threats, fraudulent activity and more. Splunk takes this data and makes
sense of it. Business sense. IT sense. Common sense.
http://p.sf.net/sfu/splunk-d2dcopy1
_______________________________________________
Savonet-devl mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/savonet-devl