<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2011-04-04)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-04-04 Joel Sherrill <joel.sherrilL@OARcorp.com>

        PR 1773/cpukit
        * sapi/include/confdefs.h, sapi/src/exinit.c,
        score/include/rtems/bspsmp.h, score/src/percpu.c, score/src/thread.c:
        Rename rtems_smp_maximum_processor to
        rtems_configuration_smp_maximum_processor. Eliminate printk().
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2792&r2=text&tr2=1.2793&diff_format=h">M</a></td><td width='1%'>1.2793</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/sapi/include/confdefs.h.diff?r1=text&tr1=1.161&r2=text&tr2=1.162&diff_format=h">M</a></td><td width='1%'>1.162</td><td width='100%'>cpukit/sapi/include/confdefs.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/sapi/src/exinit.c.diff?r1=text&tr1=1.57&r2=text&tr2=1.58&diff_format=h">M</a></td><td width='1%'>1.58</td><td width='100%'>cpukit/sapi/src/exinit.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/include/rtems/bspsmp.h.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>cpukit/score/include/rtems/bspsmp.h</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/src/percpu.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>cpukit/score/src/percpu.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/score/src/thread.c.diff?r1=text&tr1=1.67&r2=text&tr2=1.68&diff_format=h">M</a></td><td width='1%'>1.68</td><td width='100%'>cpukit/score/src/thread.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2792 rtems/cpukit/ChangeLog:1.2793
--- rtems/cpukit/ChangeLog:1.2792       Thu Mar 24 06:21:57 2011
+++ rtems/cpukit/ChangeLog      Mon Apr  4 11:39:58 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-04-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1773/cpukit
+       * sapi/include/confdefs.h, sapi/src/exinit.c,
+       score/include/rtems/bspsmp.h, score/src/percpu.c, score/src/thread.c:
+       Rename rtems_smp_maximum_processor to
+       rtems_configuration_smp_maximum_processor. Eliminate printk().
+
</font> 2011-03-24        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * include/rtems/bsd/sys/queue.h, include/rtems/bsd/sys/cdefs.h:

<font color='#006600'>diff -u rtems/cpukit/sapi/include/confdefs.h:1.161 rtems/cpukit/sapi/include/confdefs.h:1.162
--- rtems/cpukit/sapi/include/confdefs.h:1.161  Wed Mar 16 15:05:04 2011
+++ rtems/cpukit/sapi/include/confdefs.h        Mon Apr  4 11:40:00 2011
</font><font color='#997700'>@@ -2161,9 +2161,10 @@
</font>    *  in an SMP configuration.
    */
   #if defined(CONFIGURE_INIT)
<font color='#880000'>-    uint32_t rtems_smp_maximum_processors = CONFIGURE_SMP_MAXIMUM_PROCESSORS;
</font><font color='#000088'>+    uint32_t rtems_configuration_smp_maximum_processors = \
+        CONFIGURE_SMP_MAXIMUM_PROCESSORS;
</font>   #else
<font color='#880000'>-    extern uint32_t rtems_smp_maximum_processors;
</font><font color='#000088'>+    extern uint32_t rtems_configuration_smp_maximum_processors;
</font>   #endif
  /*
   * Instantiate the Per CPU information based upon the user configuration.

<font color='#006600'>diff -u rtems/cpukit/sapi/src/exinit.c:1.57 rtems/cpukit/sapi/src/exinit.c:1.58
--- rtems/cpukit/sapi/src/exinit.c:1.57 Wed Mar 16 15:05:04 2011
+++ rtems/cpukit/sapi/src/exinit.c      Mon Apr  4 11:40:00 2011
</font><font color='#997700'>@@ -163,7 +163,8 @@
</font>    * Discover and initialize the secondary cores in an SMP system.
    */
   #if defined(RTEMS_SMP)
<font color='#880000'>-    _SMP_Processor_count = bsp_smp_initialize( rtems_smp_maximum_processors );
</font><font color='#000088'>+    _SMP_Processor_count =
+        bsp_smp_initialize( rtems_configuration_smp_maximum_processors );
</font>   #endif
 
   _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );

<font color='#006600'>diff -u rtems/cpukit/score/include/rtems/bspsmp.h:1.1 rtems/cpukit/score/include/rtems/bspsmp.h:1.2
--- rtems/cpukit/score/include/rtems/bspsmp.h:1.1       Wed Mar 16 15:05:05 2011
+++ rtems/cpukit/score/include/rtems/bspsmp.h   Mon Apr  4 11:40:00 2011
</font><font color='#997700'>@@ -87,7 +87,7 @@
</font>  *  This variable is set during the SMP initialization sequence to
  *  indicate the Maximum number of CPUs in this system.
  */
<font color='#880000'>-extern uint32_t rtems_smp_maximum_processors;
</font><font color='#000088'>+extern uint32_t rtems_configuration_smp_maximum_processors;
</font>  
 /**
  *  @brief Initialize Secondary CPUs

<font color='#006600'>diff -u rtems/cpukit/score/src/percpu.c:1.3 rtems/cpukit/score/src/percpu.c:1.4
--- rtems/cpukit/score/src/percpu.c:1.3 Fri Mar 18 09:12:46 2011
+++ rtems/cpukit/score/src/percpu.c     Mon Apr  4 11:40:00 2011
</font><font color='#997700'>@@ -40,9 +40,7 @@
</font>      */
     size = Configuration.interrupt_stack_size;
     _Per_CPU_Information_p[0] = &_Per_CPU_Information[0];
<font color='#880000'>-    for (cpu=1 ; cpu < rtems_smp_maximum_processors; cpu++ ) {
-
-      printk("Initializing cpu control structure %d\n", cpu );
</font><font color='#000088'>+    for (cpu=1 ; cpu < rtems_configuration_smp_maximum_processors; cpu++ ) {
</font> 
       Per_CPU_Control *p = &_Per_CPU_Information[cpu];
 

<font color='#006600'>diff -u rtems/cpukit/score/src/thread.c:1.67 rtems/cpukit/score/src/thread.c:1.68
--- rtems/cpukit/score/src/thread.c:1.67        Wed Mar 16 15:05:06 2011
+++ rtems/cpukit/score/src/thread.c     Mon Apr  4 11:40:00 2011
</font><font color='#997700'>@@ -94,7 +94,7 @@
</font>    *  coupled multiprocessing system, account for the MPCI Server Thread.
    */
   #if defined(RTEMS_SMP)
<font color='#880000'>-    maximum_internal_threads = rtems_smp_maximum_processors;
</font><font color='#000088'>+    maximum_internal_threads = rtems_configuration_smp_maximum_processors;
</font>   #else
     maximum_internal_threads = 1;
   #endif
</pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
 <font color='#225522'><em>(on branch rtems-4-10-branch)</em></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-04-04 Joel Sherrill <joel.sherrilL@OARcorp.com>

        PR 1768/bsps
        * shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
        we do not perform a cld before calling C code in the ISR. This was
        historically not a problem but gcc 4.3 changed the behavior. From
        http://gcc.gnu.org/gcc-4.3/changes.html
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/ChangeLog.diff?r1=text&tr1=1.77&r2=text&tr2=1.78&diff_format=h">M</a></td><td width='1%'>1.78</td><td width='100%'>c/src/lib/libbsp/i386/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/ChangeLog.diff?r1=text&tr1=1.47.2.2&r2=text&tr2=1.47.2.3&diff_format=h">M</a></td><td width='1%'>1.47.2.3</td><td width='100%'>c/src/lib/libbsp/i386/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/ChangeLog.diff?r1=text&tr1=1.64.2.1&r2=text&tr2=1.64.2.2&diff_format=h">M</a></td><td width='1%'>1.64.2.2</td><td width='100%'>c/src/lib/libbsp/i386/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S.diff?r1=text&tr1=1.23&r2=text&tr2=1.24&diff_format=h">M</a></td><td width='1%'>1.24</td><td width='100%'>c/src/lib/libbsp/i386/shared/irq/irq_asm.S</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S.diff?r1=text&tr1=1.8.6.2&r2=text&tr2=1.8.6.3&diff_format=h">M</a></td><td width='1%'>1.8.6.3</td><td width='100%'>c/src/lib/libbsp/i386/shared/irq/irq_asm.S</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S.diff?r1=text&tr1=1.16&r2=text&tr2=1.16.2.1&diff_format=h">M</a></td><td width='1%'>1.16.2.1</td><td width='100%'>c/src/lib/libbsp/i386/shared/irq/irq_asm.S</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/ChangeLog:1.77 rtems/c/src/lib/libbsp/i386/ChangeLog:1.78
--- rtems/c/src/lib/libbsp/i386/ChangeLog:1.77  Wed Mar 16 15:05:17 2011
+++ rtems/c/src/lib/libbsp/i386/ChangeLog       Mon Apr  4 11:44:46 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-04-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1768/bsps
+       * shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
+       we do not perform a cld before calling C code in the ISR. This was
+       historically not a problem but gcc 4.3 changed the behavior. From
+       http://gcc.gnu.org/gcc-4.3/changes.html
+
</font> 2011-03-16        Jennifer Averett <jennifer.averett@OARcorp.com>
 
        PR 1729/cpukit

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/ChangeLog:1.47.2.2 rtems/c/src/lib/libbsp/i386/ChangeLog:1.47.2.3
--- rtems/c/src/lib/libbsp/i386/ChangeLog:1.47.2.2      Mon May 18 12:45:21 2009
+++ rtems/c/src/lib/libbsp/i386/ChangeLog       Mon Apr  4 11:45:01 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-04-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1768/bsps
+       * shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
+       we do not perform a cld before calling C code in the ISR. This was
+       historically not a problem but gcc 4.3 changed the behavior. From
+       http://gcc.gnu.org/gcc-4.3/changes.html
+
</font> 2009-05-18        Joel Sherrill <joel.sherrill@OARcorp.com>
 
        * shared/irq/irq.c, shared/irq/irq.h, shared/irq/irq_asm.S: Add shared

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/ChangeLog:1.64.2.1 rtems/c/src/lib/libbsp/i386/ChangeLog:1.64.2.2
--- rtems/c/src/lib/libbsp/i386/ChangeLog:1.64.2.1      Wed Feb  2 09:14:30 2011
+++ rtems/c/src/lib/libbsp/i386/ChangeLog       Mon Apr  4 11:44:55 2011
</font><font color='#997700'>@@ -1,3 +1,11 @@
</font><font color='#000088'>+2011-04-04    Joel Sherrill <joel.sherrilL@OARcorp.com>
+
+       PR 1768/bsps
+       * shared/irq/irq_asm.S: The nbench benchmark highlighted the fact that
+       we do not perform a cld before calling C code in the ISR. This was
+       historically not a problem but gcc 4.3 changed the behavior. From
+       http://gcc.gnu.org/gcc-4.3/changes.html
+
</font> 2011-02-02        Ralf Corsépius <ralf.corsepius@rtems.org>
 
        * configure.ac: Require autoconf-2.68, automake-1.11.1.

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.23 rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.24
--- rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.23       Wed Mar 16 15:05:17 2011
+++ rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S    Mon Apr  4 11:44:46 2011
</font><font color='#997700'>@@ -167,6 +167,13 @@
</font>   incl      PER_CPU_ISR_NEST_LEVEL(ebx)  /* one nest level deeper */
        incl      SYM (_Thread_Dispatch_disable_level) /* disable multitasking */
 
<font color='#000088'>+        /*
+         * GCC versions starting with 4.3 no longer place the cld
+         * instruction before string operations.  We  need to ensure
+         * it is set correctly for ISR handlers.
+         */
+        cld
+
</font>   /*
         * re-enable interrupts at processor level as the current
         * interrupt source is now masked via i8259

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.8.6.2 rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.8.6.3
--- rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.8.6.2    Mon May 18 12:45:21 2009
+++ rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S    Mon Apr  4 11:45:01 2011
</font><font color='#997700'>@@ -121,6 +121,13 @@
</font>   movl      ebp, esp
        popl      ebp
 
<font color='#000088'>+        /*
+         * GCC versions starting with 4.3 no longer place the cld
+         * instruction before string operations.  We  need to ensure
+         * it is set correctly for ISR handlers.
+         */
+        cld
+
</font>   /*
         * restore the original i8259 masks
         */

<font color='#006600'>diff -u rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.16 rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.16.2.1
--- rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S:1.16       Sun Nov 29 21:47:10 2009
+++ rtems/c/src/lib/libbsp/i386/shared/irq/irq_asm.S    Mon Apr  4 11:44:55 2011
</font><font color='#997700'>@@ -145,6 +145,13 @@
</font>   incl      SYM (_ISR_Nest_level)     /* one nest level deeper */
        incl      SYM (_Thread_Dispatch_disable_level) /* disable multitasking */
 
<font color='#000088'>+        /*
+         * GCC versions starting with 4.3 no longer place the cld
+         * instruction before string operations.  We  need to ensure
+         * it is set correctly for ISR handlers.
+         */
+        cld
+
</font>   /*
         * re-enable interrupts at processor level as the current
         * interrupt source is now masked via i8259
</pre>
<p> </p>
<a name='cs3'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
 <font color='#225522'><em>(on branch rtems-4-10-branch)</em></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2011-04-04 Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>

        PR 1722/networking
        * ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
        filenames with spaces in them.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2793&r2=text&tr2=1.2794&diff_format=h">M</a></td><td width='1%'>1.2794</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.1539.2.72&r2=text&tr2=1.1539.2.73&diff_format=h">M</a></td><td width='1%'>1.1539.2.73</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2346.2.84&r2=text&tr2=1.2346.2.85&diff_format=h">M</a></td><td width='1%'>1.2346.2.85</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ftpd/ftpd.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.24&diff_format=h">M</a></td><td width='1%'>1.24</td><td width='100%'>cpukit/ftpd/ftpd.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ftpd/ftpd.c.diff?r1=text&tr1=1.18.2.1&r2=text&tr2=1.18.2.2&diff_format=h">M</a></td><td width='1%'>1.18.2.2</td><td width='100%'>cpukit/ftpd/ftpd.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ftpd/ftpd.c.diff?r1=text&tr1=1.23&r2=text&tr2=1.23.2.1&diff_format=h">M</a></td><td width='1%'>1.23.2.1</td><td width='100%'>cpukit/ftpd/ftpd.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2793 rtems/cpukit/ChangeLog:1.2794
--- rtems/cpukit/ChangeLog:1.2793       Mon Apr  4 11:39:58 2011
+++ rtems/cpukit/ChangeLog      Mon Apr  4 12:08:34 2011
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2011-04-04    Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
+
+       PR 1722/networking
+       * ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
+       filenames with spaces in them.
+
</font> 2011-04-04        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        PR 1773/cpukit

<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.1539.2.72 rtems/cpukit/ChangeLog:1.1539.2.73
--- rtems/cpukit/ChangeLog:1.1539.2.72  Tue Mar  8 16:15:05 2011
+++ rtems/cpukit/ChangeLog      Mon Apr  4 12:08:57 2011
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2011-04-04    Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
+
+       PR 1722/networking
+       * ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
+       filenames with spaces in them.
+
</font> 2011-03-08        Joel Sherrill <joel.sherrilL@OARcorp.com>
 
        PR 1759/cpukit

<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2346.2.84 rtems/cpukit/ChangeLog:1.2346.2.85
--- rtems/cpukit/ChangeLog:1.2346.2.84  Mon Mar 14 02:44:32 2011
+++ rtems/cpukit/ChangeLog      Mon Apr  4 12:08:45 2011
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2011-04-04    Sebastien Bourdeauducq <sebastien.bourdeauducq@gmail.com>
+
+       PR 1722/networking
+       * ftpd/ftpd.c: FTPD fails to parse correctly FTP commands relating to
+       filenames with spaces in them.
+
</font> 2011-03-14        Chris Johns <chrisj@rtems.org>
 
        PR 1757/filesystem

<font color='#006600'>diff -u rtems/cpukit/ftpd/ftpd.c:1.23 rtems/cpukit/ftpd/ftpd.c:1.24
--- rtems/cpukit/ftpd/ftpd.c:1.23       Fri May  7 04:07:17 2010
+++ rtems/cpukit/ftpd/ftpd.c    Mon Apr  4 12:08:34 2011
</font><font color='#997700'>@@ -15,6 +15,10 @@
</font>  *
  *  Changes:
  *
<font color='#000088'>+ *    2010-12-02        Sebastien Bourdeauducq <sebastien@milkymist.org>
+ *
+ *      * Support spaces in filenames
+ *<span style="background-color: #FF0000"> </span>
</font>  *    2001-01-31        Sergei Organov <osv@javad.ru>
  *
  *      * Hacks with current dir and root dir removed in favor of new libio
<font color='#997700'>@@ -1680,27 +1684,27 @@
</font>   }
   else if (!strcmp("RETR", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_retrieve(info, fname);
   }
   else if (!strcmp("STOR", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_store(info, fname);
   }
   else if (!strcmp("LIST", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_list(info, fname, 1);
   }
   else if (!strcmp("NLST", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_list(info, fname, 0);
   }
   else if (!strcmp("MDTM", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_mdtm(info, fname);
   }
   else if (!strcmp("SYST", cmd))
<font color='#997700'>@@ -1736,7 +1740,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       unlink(fname) == 0)
     {
       send_reply(info, 257, "DELE successful.");
<font color='#997700'>@@ -1758,15 +1762,14 @@
</font>       {
         send_reply(info, 550, "Access denied.");
       }
<font color='#880000'>-      else if(
-        2 == sscanf(args, "%o %254s", &mask, fname) &&
-        chmod(fname, (mode_t)mask) == 0)
-      {
-        send_reply(info, 257, "CHMOD successful.");
-      }
-      else
-      {
-        send_reply(info, 550, "CHMOD failed.");
</font><font color='#000088'>+      else {
+        char *c;
+        c = strchr(args, ' ');
+        if((c != NULL) && (sscanf(args, "%o", &mask) == 1) && strncpy(fname, c+1, 254)<span style="background-color: #FF0000"> </span>
+          && (chmod(fname, (mode_t)mask) == 0))
+          send_reply(info, 257, "CHMOD successful.");
+        else
+          send_reply(info, 550, "CHMOD failed.");
</font>       }
     }
     else
<font color='#997700'>@@ -1779,7 +1782,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       rmdir(fname) == 0)
     {
       send_reply(info, 257, "RMD successful.");
<font color='#997700'>@@ -1796,7 +1799,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) == 0)
     {
       send_reply(info, 257, "MKD successful.");
<font color='#997700'>@@ -1808,7 +1811,7 @@
</font>   }
   else if (!strcmp("CWD", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_cwd(info, fname);
   }
   else if (!strcmp("CDUP", cmd))

<font color='#006600'>diff -u rtems/cpukit/ftpd/ftpd.c:1.18.2.1 rtems/cpukit/ftpd/ftpd.c:1.18.2.2
--- rtems/cpukit/ftpd/ftpd.c:1.18.2.1   Wed Feb  4 23:22:38 2009
+++ rtems/cpukit/ftpd/ftpd.c    Mon Apr  4 12:08:59 2011
</font><font color='#997700'>@@ -15,6 +15,10 @@
</font>  *
  *  Changes:
  *
<font color='#000088'>+ *    2010-12-02        Sebastien Bourdeauducq <sebastien@milkymist.org>
+ *
+ *      * Support spaces in filenames
+ *<span style="background-color: #FF0000"> </span>
</font>  *    2001-01-31        Sergei Organov <osv@javad.ru>
  *
  *      * Hacks with current dir and root dir removed in favor of new libio
<font color='#997700'>@@ -1671,27 +1675,27 @@
</font>   }
   else if (!strcmp("RETR", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_retrieve(info, fname);
   }
   else if (!strcmp("STOR", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_store(info, fname);
   }
   else if (!strcmp("LIST", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_list(info, fname, 1);
   }
   else if (!strcmp("NLST", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_list(info, fname, 0);
   }
   else if (!strcmp("MDTM", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_mdtm(info, fname);
   }
   else if (!strcmp("SYST", cmd))
<font color='#997700'>@@ -1727,7 +1731,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       unlink(fname) == 0)
     {
       send_reply(info, 257, "DELE successful.");
<font color='#997700'>@@ -1749,15 +1753,14 @@
</font>       {
         send_reply(info, 550, "Access denied.");
       }
<font color='#880000'>-      else if(
-        2 == sscanf(args, "%o %254s", &mask, fname) &&
-        chmod(fname, (mode_t)mask) == 0)
-      {
-        send_reply(info, 257, "CHMOD successful.");
-      }
-      else
-      {
-        send_reply(info, 550, "CHMOD failed.");
</font><font color='#000088'>+      else {
+        char *c;
+        c = strchr(args, ' ');
+        if((c != NULL) && (sscanf(args, "%o", &mask) == 1) && strncpy(fname, c+1, 254)<span style="background-color: #FF0000"> </span>
+          && (chmod(fname, (mode_t)mask) == 0))
+          send_reply(info, 257, "CHMOD successful.");
+        else
+          send_reply(info, 550, "CHMOD failed.");
</font>       }
     }
     else
<font color='#997700'>@@ -1770,7 +1773,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       rmdir(fname) == 0)
     {
       send_reply(info, 257, "RMD successful.");
<font color='#997700'>@@ -1787,7 +1790,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) == 0)
     {
       send_reply(info, 257, "MKD successful.");
<font color='#997700'>@@ -1799,7 +1802,7 @@
</font>   }
   else if (!strcmp("CWD", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_cwd(info, fname);
   }
   else if (!strcmp("CDUP", cmd))

<font color='#006600'>diff -u rtems/cpukit/ftpd/ftpd.c:1.23 rtems/cpukit/ftpd/ftpd.c:1.23.2.1
--- rtems/cpukit/ftpd/ftpd.c:1.23       Fri May  7 04:07:17 2010
+++ rtems/cpukit/ftpd/ftpd.c    Mon Apr  4 12:08:47 2011
</font><font color='#997700'>@@ -15,6 +15,10 @@
</font>  *
  *  Changes:
  *
<font color='#000088'>+ *    2010-12-02        Sebastien Bourdeauducq <sebastien@milkymist.org>
+ *
+ *      * Support spaces in filenames
+ *<span style="background-color: #FF0000"> </span>
</font>  *    2001-01-31        Sergei Organov <osv@javad.ru>
  *
  *      * Hacks with current dir and root dir removed in favor of new libio
<font color='#997700'>@@ -1680,27 +1684,27 @@
</font>   }
   else if (!strcmp("RETR", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_retrieve(info, fname);
   }
   else if (!strcmp("STOR", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_store(info, fname);
   }
   else if (!strcmp("LIST", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_list(info, fname, 1);
   }
   else if (!strcmp("NLST", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_list(info, fname, 0);
   }
   else if (!strcmp("MDTM", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_mdtm(info, fname);
   }
   else if (!strcmp("SYST", cmd))
<font color='#997700'>@@ -1736,7 +1740,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       unlink(fname) == 0)
     {
       send_reply(info, 257, "DELE successful.");
<font color='#997700'>@@ -1758,15 +1762,14 @@
</font>       {
         send_reply(info, 550, "Access denied.");
       }
<font color='#880000'>-      else if(
-        2 == sscanf(args, "%o %254s", &mask, fname) &&
-        chmod(fname, (mode_t)mask) == 0)
-      {
-        send_reply(info, 257, "CHMOD successful.");
-      }
-      else
-      {
-        send_reply(info, 550, "CHMOD failed.");
</font><font color='#000088'>+      else {
+        char *c;
+        c = strchr(args, ' ');
+        if((c != NULL) && (sscanf(args, "%o", &mask) == 1) && strncpy(fname, c+1, 254)<span style="background-color: #FF0000"> </span>
+          && (chmod(fname, (mode_t)mask) == 0))
+          send_reply(info, 257, "CHMOD successful.");
+        else
+          send_reply(info, 550, "CHMOD failed.");
</font>       }
     }
     else
<font color='#997700'>@@ -1779,7 +1782,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       rmdir(fname) == 0)
     {
       send_reply(info, 257, "RMD successful.");
<font color='#997700'>@@ -1796,7 +1799,7 @@
</font>       send_reply(info, 550, "Access denied.");
     }
     else if (
<font color='#880000'>-      1 == sscanf(args, "%254s", fname) &&
</font><font color='#000088'>+      strncpy(fname, args, 254) &&
</font>       mkdir(fname, S_IRWXU | S_IRWXG | S_IRWXO) == 0)
     {
       send_reply(info, 257, "MKD successful.");
<font color='#997700'>@@ -1808,7 +1811,7 @@
</font>   }
   else if (!strcmp("CWD", cmd))
   {
<font color='#880000'>-    sscanf(args, "%254s", fname);
</font><font color='#000088'>+    strncpy(fname, args, 254);
</font>     command_cwd(info, fname);
   }
   else if (!strcmp("CDUP", cmd))
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>