[PD] popen vs shell bug

Hans-Christoph Steiner hans at at.or.at
Thu Jul 1 21:20:57 CEST 2010


I am thinking of the ideal version of this, an object that would give  
you an inlet for STDIN then two outlets for STDOUT and STDERR, plus a  
status outlet and an inlet to set what to run.  It could be something  
like this:

[process /usr/bin/python]

Then you could send python bits to it via the first inlet, and receive  
the reply via the outlets.  So something like a cleaner [shell].

.hc

On Jul 1, 2010, at 2:25 PM, Kim Cascone wrote:

> I like having the outlet on [shell] so I can pipe data to the console
>
> Hans-Christoph Steiner wrote:
>>
>> motex/system works for me:
>>
>> .hc
>>
>>
>>
>> On Jun 24, 2010, at 6:58 PM, Kim Cascone wrote:
>>
>>> I send the following message to both the [popen] and the [shell]  
>>> externals:
>>>
>>> [cd /usr/lib/pd/extra && ls -al > ~/Desktop/foobar.txt]
>>>
>>> when sent to [popen] it crashes Pd
>>> but sending it to [shell] worked fine
>>>
>>> below is the crash report (pd -stderr) after sending it to [popen]
>>>
>>> FYI: I got rid of the [moonlib] version of [popen] as well as its  
>>> help file
>>> as you can see the flatspace one is being loaded
>>>
>>> ===================================
>>>
>>> tried /usr/lib/pd/extra/flatspace/popen.pd_linux and succeeded
>>>
>>> *** buffer overflow detected ***: pd terminated
>>> ======= Backtrace: =========
>>> /lib/tls/i686/cmov/libc.so.6(__fortify_fail+0x48)[0xb76deef8]
>>> /lib/tls/i686/cmov/libc.so.6[0xb76dd000]
>>> /lib/tls/i686/cmov/libc.so.6[0xb76dc28d]
>>> /usr/lib/pd/extra/flatspace/popen.pd_linux[0xb70e2b9f]
>>> pd(pd_typedmess+0x2ab)[0x80b71db]
>>> ======= Memory map: ========
>>> 08048000-08111000 r-xp 00000000 08:03 35809      /usr/bin/pd
>>> 08111000-08112000 r--p 000c8000 08:03 35809      /usr/bin/pd
>>> 08112000-08113000 rw-p 000c9000 08:03 35809      /usr/bin/pd
>>> 08113000-08520000 rw-p 08113000 00:00 0
>>> 09f9f000-0a089000 rw-p 09f9f000 00:00 0          [heap]
>>> b42f3000-b4348000 r-xp 00000000 08:03 34905      /usr/lib/ 
>>> liboil-0.3.so.0.3.0
>>> b4348000-b4349000 r--p 00055000 08:03 34905      /usr/lib/ 
>>> liboil-0.3.so.0.3.0
>>> b4349000-b4360000 rw-p 00056000 08:03 34905      /usr/lib/ 
>>> liboil-0.3.so.0.3.0
>>> b4360000-b4362000 rw-p b4360000 00:00 0
>>> b4362000-b4366000 r-xp 00000000 08:03 482419     /lib/libattr.so. 
>>> 1.1.0
>>> b4366000-b4367000 r--p 00003000 08:03 482419     /lib/libattr.so. 
>>> 1.1.0
>>> b4367000-b4368000 rw-p 00004000 08:03 482419     /lib/libattr.so. 
>>> 1.1.0
>>> b4368000-b436b000 r-xp 00000000 08:03 482538     /lib/libuuid.so.1.2
>>> b436b000-b436c000 r--p 00002000 08:03 482538     /lib/libuuid.so.1.2
>>> b436c000-b436d000 rw-p 00003000 08:03 482538     /lib/libuuid.so.1.2
>>> b436d000-b4405000 r-xp 00000000 08:03 34677      /usr/lib/ 
>>> libxvidcore.so.4.2
>>> b4405000-b440f000 rw-p 00098000 08:03 34677      /usr/lib/ 
>>> libxvidcore.so.4.2
>>> b440f000-b4479000 rw-p b440f000 00:00 0
>>> b4479000-b4502000 r-xp 00000000 08:03 33520      /usr/lib/ 
>>> libx264.so.68
>>> b4502000-b4504000 rw-p 00088000 08:03 33520      /usr/lib/ 
>>> libx264.so.68
>>> b4504000-b450b000 rw-p b4504000 00:00 0
>>> b450b000-b4526000 r-xp 00000000 08:03 1406274    /usr/lib/sse2/ 
>>> libspeex.so.1.5.0
>>> b4526000-b4527000 r--p 0001a000 08:03 1406274    /usr/lib/sse2/ 
>>> libspeex.so.1.5.0
>>> b4527000-b4528000 rw-p 0001b000 08:03 1406274    /usr/lib/sse2/ 
>>> libspeex.so.1.5.0
>>> b4528000-b4598000 r-xp 00000000 08:03 33499      /usr/lib/ 
>>> libschroedinger-1.0.so.0.2.0
>>> b4598000-b4599000 ---p 00070000 08:03 33499      /usr/lib/ 
>>> libschroedinger-1.0.so.0.2.0
>>> b4599000-b459a000 r--p 00070000 08:03 33499      /usr/lib/ 
>>> libschroedinger-1.0.so.0.2.0
>>> b459a000-b459b000 rw-p 00071000 08:03 33499      /usr/lib/ 
>>> libschroedinger-1.0.so.0.2.0
>>> b459b000-b45b8000 r-xp 00000000 08:03 36726      /usr/lib/ 
>>> libopenjpeg-2.1.3.0.so
>>> b45b8000-b45b9000 r--p 0001c000 08:03 36726      /usr/lib/ 
>>> libopenjpeg-2.1.3.0.so
>>> b45b9000-b45ba000 rw-p 0001d000 08:03 36726      /usr/lib/ 
>>> libopenjpeg-2.1.3.0.so
>>> b45ba000-b45ce000 r-xp 00000000 08:03 33583      /usr/lib/ 
>>> libopencore-amrwb.so.0.1.1
>>> b45ce000-b45cf000 rw-p 00014000 08:03 33583      /usr/lib/ 
>>> libopencore-amrwb.so.0.1.1
>>> b45cf000-b45fc000 r-xp 00000000 08:03 33581      /usr/lib/ 
>>> libopencore-amrnb.so.0.1.1
>>> b45fc000-b45fd000 rw-p 0002c000 08:03 33581      /usr/lib/ 
>>> libopencore-amrnb.so.0.1.1
>>> b45fd000-b4609000 r-xp 00000000 08:03 35799      /usr/lib/ 
>>> libgsm.so.1.0.12
>>> b4609000-b460a000 rw-p 0000b000 08:03 35799      /usr/lib/ 
>>> libgsm.so.1.0.12
>>> b460a000-b4645000 r-xp 00000000 08:03 36722      /usr/lib/ 
>>> libfaad.so.0.0.0
>>> b4645000-b4646000 ---p 0003b000 08:03 36722      /usr/lib/ 
>>> libfaad.so.0.0.0
>>> b4646000-b4647000 r--p 0003b000 08:03 36722      /usr/lib/ 
>>> libfaad.so.0.0.0
>>> b4647000-b464a000 rw-p 0003c000 08:03 36722      /usr/lib/ 
>>> libfaad.so.0.0.0
>>> b464a000-b4658000 r-xp 00000000 08:03 33922      /usr/lib/ 
>>> libfaac.so.0.0.0
>>> b4658000-b465b000 rw-p 0000d000 08:03 33922      /usr/lib/ 
>>> libfaac.so.0.0.0
>>> b465b000-b46eb000 r-xp 00000000 08:03 36716      /usr/lib/ 
>>> libdirac_encoder.so.0.1.0
>>> b46eb000-b46ed000 rw-p 00090000 08:03 36716      /usr/lib/ 
>>> libdirac_encoder.so.0.1.0
>>> b46ed000-b46ee000 rw-p b46ed000 00:00 0
>>> b46ee000-b46fd000 r-xp 00000000 08:03 409348     /usr/lib/i686/ 
>>> cmov/libavutil.so.50.16.0
>>> b46fd000-b46fe000 rw-p 0000f000 08:03 409348     /usr/lib/i686/ 
>>> cmov/libavutil.so.50.16.0
>>> b46fe000-b4701000 rw-p b46fe000 00:00 0
>>> b4701000-b473b000 r-xp 00000000 08:03 482466     /lib/ 
>>> libncursesw.so.5.7
>>> b473b000-b473c000 ---p 0003a000 08:03 482466     /lib/ 
>>> libncursesw.so.5.7
>>> b473c000-b473e000 r--p 0003a000 08:03 482466     /lib/ 
>>> libncursesw.so.5.7
>>> b473e000-b473f000 rw-p 0003c000 08:03 482466     /lib/ 
>>> libncursesw.so.5.7
>>> b473f000-b4744000 r-xp 00000000 08:03 35655      /usr/lib/ 
>>> libgdbm.so.3.0.0
>>> b4744000-b4745000 r--p 00004000 08:03 35655      /usr/lib/ 
>>> libgdbm.so.3.0.0
>>> b4745000-b4746000 rw-p 00005000 08:03 35655      /usr/lib/ 
>>> libgdbm.so.3.0.0
>>> b4746000-b4749000 r-xp 00000000 08:03 482430     /lib/libcap.so.2.11
>>> b4749000-b474a000 r--p 00002000 08:03 482430     /lib/libcap.so.2.11
>>> b474a000-b474b000 rw-p 00003000 08:03 482430     /lib/libcap.so.2.11
>>> b474b000-b4760000 r-xp 00000000 08:03 35314      /usr/lib/ 
>>> libICE.so.6.3.0
>>> b4760000-b4761000 rw-p 00014000 08:03 35314      /usr/lib/ 
>>> libICE.so.6.3.0
>>> b4761000-b4763000 rw-p b4761000 00:00 0
>>> b4763000-b476a000 r-xp 00000000 08:03 35345      /usr/lib/libSM.so. 
>>> 6.0.0
>>> b476a000-b476b000 r--p 00006000 08:03 35345      /usr/lib/libSM.so. 
>>> 6.0.0
>>> b476b000-b476c000 rw-p 00007000 08:03 35345      /usr/lib/libSM.so. 
>>> 6.0.0
>>> b476c000-b4773000 r-xp 00000000 08:03 35765      /usr/lib/ 
>>> libgomp.so.1.0.0
>>> b4773000-b4774000 r--p 00006000 08:03 35765      /usr/lib/ 
>>> libgomp.so.1.0.0
>>> b4774000-b4775000 rw-p 00007000 08:03 35765      /usr/lib/ 
>>> libgomp.so.1.0.0
>>> b4775000-b47aa000 r-xp 00000000 08:03 409468     /usr/lib/i686/ 
>>> cmov/libswscale.so.0.11.0
>>> b47aa000-b47ab000 rw-p 00034000 08:03 409468     /usr/lib/i686/ 
>>> cmov/libswscale.so.0.11.0
>>> b47ab000-b47b8000 r-xp 00000000 08:03 410417     /usr/lib/i686/ 
>>> cmov/libavutil.so.49.15.0
>>> b47b8000-b47b9000 r--p 0000c000 08:03 410417     /usr/lib/i686/ 
>>> cmov/libavutil.so.49.15.0
>>> b47b9000-b47ba000 rw-p 0000d000 08:03 410417     /usr/lib/i686/ 
>>> cmov/libavutil.so.49.15.0
>>> b47ba000-b47bd000 rw-p b47ba000 00:00 0
>>> b47bd000-b4872000 r-xp 00000000 08:03 409849     /usr/lib/i686/ 
>>> cmov/libavformat.so.52.37.0
>>> b4872000-b4879000 rw-p 000b5000 08:03 409849     /usr/lib/i686/ 
>>> cmov/libavformat.so.52.37.0
>>> b4879000-b48c5000 rw-p b4879000 00:00 0
>>> b48c5000-b4da2000 r-xp 00000000 08:03 409836     /usr/lib/i686/ 
>>> cmov/libavcodec.so.52.32.0
>>> b4da2000-b4dad000 rw-p 004dc000 08:03 409836     /usr/lib/i686/ 
>>> cmov/libavcodec.so.52.32.0
>>> b4dad000-b51cf000 rw-p b4dad000 00:00 0
>>> b51cf000-b52da000 r-xp 00000000 08:03 36599      /usr/lib/ 
>>> libcxcore.so.1.0.0
>>> b52da000-b52db000 r--p 0010a000 08:03 36599      /usr/lib/ 
>>> libcxcore.so.1.0.0
>>> b52db000-b52e2000 rw-p 0010b000 08:03 36599      /usr/lib/ 
>>> libcxcore.so.1.0.0
>>> b52e2000-b52eb000 rw-p b52e2000 00:00 0
>>> b52eb000-b531b000 r-xp 00000000 08:03 482499     /lib/libpcre.so. 
>>> 3.12.1
>>> b531b000-b531c000 r--p 0002f000 08:03 482499     /lib/libpcre.so. 
>>> 3.12.1
>>> b531c000-b531d000 rw-p 00030000 08:03 482499     /lib/libpcre.so. 
>>> 3.12.1
>>> b531d000-b5326000 r-xp 00000000 08:03 36707      /usr/lib/ 
>>> liba52-0.7.4.so
>>> b5326000-b5327000 rw-p 00008000 08:03 36707      /usr/lib/ 
>>> liba52-0.7.4.so
>>> b5327000-b5328000 rw-p b5327000 00:00 0
>>> b5328000-b5339000 r-xp 00000000 08:03 36284      /usr/lib/ 
>>> libv4lconvert.so.0
>>> b5339000-b533a000 r--p 00010000 08:03 36284      /usr/lib/ 
>>> libv4lconvert.so.0
>>> b533a000-b533b000 rw-p 00011000 08:03 36284      /usr/lib/ 
>>> libv4lconvert.so.0
>>> b533b000-b538b000 rw-p b533b000 00:00 0
>>> b538b000-b5390000 r-xp 00000000 08:03 35785      /usr/lib/ 
>>> libgpm.so.2.0.0
>>> b5390000-b5391000 r--p 00004000 08:03 35785      /usr/lib/ 
>>> libgpm.so.2.0.0
>>> b5391000-b5392000 rw-p 00005000 08:03 35785      /usr/lib/ 
>>> libgpm.so.2.0.0
>>> b5392000-b542d000 r-xp 00000000 08:03 482516     /lib/libslang.so. 
>>> 2.1.3
>>> b542d000-b5430000 r--p 0009a000 08:03 482516     /lib/libslang.so. 
>>> 2.1.3
>>> b5430000-b543d000 rw-p 0009d000 08:03 482516     /lib/libslang.so. 
>>> 2.1.3
>>> b543d000-b5473000 rw-p b543d000 00:00 0
>>> b5473000-b54a2000 r-xp 00000000 08:03 482464     /lib/ 
>>> libncurses.so.5.7
>>> b54a2000-b54a4000 r--p 0002e000 08:03 482464     /lib/ 
>>> libncurses.so.5.7
>>> b54a4000-b54a5000 rw-p 00030000 08:03 482464     /lib/ 
>>> libncurses.so.5.7
>>> b54a5000-b54c1000 r-xp 00000000 08:03 35476      /usr/lib/ 
>>> libcaca.so.0.99.16
>>> b54c1000-b54c2000 r--p 0001b000 08:03 35476      /usr/lib/ 
>>> libcaca.so.0.99.16
>>> b54c2000-b5549000 rw-p 0001c000 08:03 35476      /usr/lib/ 
>>> libcaca.so.0.99.16
>>> b5549000-b554d000 rw-p b5549000 00:00 0
>>> b554d000-b5560000 r-xp 00000000 08:03 35550      /usr/lib/ 
>>> libdirect-1.0.so.0.1.0
>>> b5560000-b5561000 r--p 00012000 08:03 35550      /usr/lib/ 
>>> libdirect-1.0.so.0.1.0
>>> b5561000-b5562000 rw-p 00013000 08:03 35550      /usr/lib/ 
>>> libdirect-1.0.so.0.1.0
>>> b5562000-b5569000 r-xp 00000000 08:03 35632      /usr/lib/ 
>>> libfusion-1.0.so.0.1.0
>>> b5569000-b556a000 r--p 00006000 08:03 35632      /upd_gui: pd  
>>> process exited
>>> Aborted
>>>
>>> _______________________________________________
>>> Pd-list at iem.at mailing list
>>> UNSUBSCRIBE and account-management -> http://lists.puredata.info/listinfo/pd-list
>>
>>
>>
>> ----------------------------------------------------------------------------
>>
>> The arc of history bends towards justice.     - Dr. Martin Luther  
>> King, Jr.
>>
>>
>



----------------------------------------------------------------------------

I have the audacity to believe that peoples everywhere can have three  
meals a day for their bodies, education and culture for their minds,  
and dignity, equality and freedom for their spirits.      - Martin  
Luther King, Jr.





More information about the Pd-list mailing list