Mercurial > octave
comparison libinterp/dldfcn/audiodevinfo.cc @ 28162:41750ce4752c stable
Better input validation for audioplayer (bug #57939).
* audiodevinfo.cc (__player_audioplayer__): Validate that NBITS input is one of
8, 16, or 24.
author | Rik <rik@octave.org> |
---|---|
date | Sun, 15 Mar 2020 14:53:33 -0700 |
parents | bd51beb6205e |
children | 21970ad14781 |
comparison
equal
deleted
inserted
replaced
28159:54d6f1b5fab2 | 28162:41750ce4752c |
---|---|
2376 error ("audioplayer: callbacks not yet implemented"); | 2376 error ("audioplayer: callbacks not yet implemented"); |
2377 | 2377 |
2378 recorder->set_y (args(0)); | 2378 recorder->set_y (args(0)); |
2379 recorder->set_fs (args(1).int_value ()); | 2379 recorder->set_fs (args(1).int_value ()); |
2380 | 2380 |
2381 switch (args.length ()) | 2381 if (args.length () > 2) |
2382 { | 2382 { |
2383 case 3: | 2383 // FIXME: Should be able to support 32-bit streams (bug #57939) |
2384 recorder->set_nbits (args(2).int_value ()); | 2384 int nbits = args(2).int_value (); |
2385 break; | 2385 if (nbits != 8 || nbits != 16 || nbits != 24) |
2386 | 2386 error ("audioplayer: NBITS must be 8, 16, or 24"); |
2387 case 4: | 2387 |
2388 recorder->set_nbits (args(2).int_value ()); | 2388 switch (args.length ()) |
2389 recorder->set_id (args(3).int_value ()); | 2389 { |
2390 break; | 2390 case 3: |
2391 recorder->set_nbits (nbits); | |
2392 break; | |
2393 | |
2394 case 4: | |
2395 recorder->set_nbits (nbits); | |
2396 recorder->set_id (args(3).int_value ()); | |
2397 break; | |
2398 } | |
2391 } | 2399 } |
2392 | 2400 |
2393 if (is_function) | 2401 if (is_function) |
2394 recorder->init_fn (); | 2402 recorder->init_fn (); |
2395 else | 2403 else |