char buf[MAX_PATH];
[...]
                  strcat(buf, DIR_SEPARATOR_STRING);
                  strcat(buf, source);
                  strcat(buf, entry->d_name);
I'm not sure this is really safe.
--
Matthieu Suiche
On Wed, Nov 19, 2008 at 8:59 PM,  <cfinck(a)svn.reactos.org> wrote:
  Author: cfinck
 Date: Wed Nov 19 13:59:54 2008
 New Revision: 37465
 URL: 
http://svn.reactos.org/svn/reactos?rev=37465&view=rev
 Log:
 Dmitry Gorbachev
 - Fix compiler warnings, treated as errors due to our settings, which are emitted when
using GCC 4.3.2
 See issue #3849 for more details.
 Modified:
    trunk/reactos/tools/cabman/cabinet.cxx
    trunk/reactos/tools/cdmake/cdmake.c
    trunk/reactos/tools/rgenstat/rgenstat.c
 Modified: trunk/reactos/tools/cabman/cabinet.cxx
 URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/cabman/cabinet.cxx?r…
 ==============================================================================
 --- trunk/reactos/tools/cabman/cabinet.cxx [iso-8859-1] (original)
 +++ trunk/reactos/tools/cabman/cabinet.cxx [iso-8859-1] Wed Nov 19 13:59:54 2008
 @@ -2055,9 +2055,19 @@
         return CAB_STATUS_CANNOT_READ;
     }
 -    GetFileTimes(SrcFile, FileNode);
 -
 -    GetAttributesOnFile(FileNode);
 +    if (GetFileTimes(SrcFile, FileNode) != CAB_STATUS_SUCCESS)
 +    {
 +        DPRINT(MIN_TRACE, ("Cannot read file times.\n"));
 +        FreeMemory(NewFileName);
 +        return CAB_STATUS_CANNOT_READ;
 +    }
 +
 +    if (GetAttributesOnFile(FileNode) != CAB_STATUS_SUCCESS)
 +    {
 +        DPRINT(MIN_TRACE, ("Cannot read file attributes.\n"));
 +        FreeMemory(NewFileName);
 +        return CAB_STATUS_CANNOT_READ;
 +    }
     CloseFile(SrcFile);
 @@ -3646,7 +3656,8 @@
         strcpy(buf, File->FileName);
     else
     {
 -        getcwd(buf, sizeof(buf));
 +        if (!getcwd(buf, sizeof(buf)))
 +            return CAB_STATUS_CANNOT_READ;
         strcat(buf, DIR_SEPARATOR_STRING);
         strcat(buf, File->FileName);
     }
 @@ -3689,7 +3700,8 @@
         strcpy(buf, File->FileName);
     else
     {
 -        getcwd(buf, sizeof(buf));
 +        if (!getcwd(buf, sizeof(buf)))
 +            return CAB_STATUS_CANNOT_READ;
         strcat(buf, DIR_SEPARATOR_STRING);
         strcat(buf, File->FileName);
     }
 Modified: trunk/reactos/tools/cdmake/cdmake.c
 URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/cdmake/cdmake.c?rev=…
 ==============================================================================
 --- trunk/reactos/tools/cdmake/cdmake.c [iso-8859-1] (original)
 +++ trunk/reactos/tools/cdmake/cdmake.c [iso-8859-1] Wed Nov 19 13:59:54 2008
 @@ -882,7 +882,8 @@
                 }
               else
                 {
 -                  getcwd(buf, sizeof(buf));
 +                  if (!getcwd(buf, sizeof(buf)))
 +                    error_exit("Can't get CWD: %s\n", strerror(errno));
                   strcat(buf, DIR_SEPARATOR_STRING);
                   strcat(buf, source);
                   strcat(buf, entry->d_name);
 @@ -943,7 +944,8 @@
                     }
                   else
                     {
 -                      getcwd(buf, sizeof(buf));
 +                      if (!getcwd(buf, sizeof(buf)))
 +                        error_exit("Can't get CWD: %s\n",
strerror(errno));
                       strcat(buf, DIR_SEPARATOR_STRING);
                       strcat(buf, source);
                     }
 @@ -994,7 +996,8 @@
             }
           else
             {
 -              getcwd(buf, sizeof(buf));
 +              if (!getcwd(buf, sizeof(buf)))
 +                error_exit("Can't get CWD: %s\n", strerror(errno));
               strcat(buf, DIR_SEPARATOR_STRING);
               strcat(buf, source);
               strcat(buf, entry->d_name);
 Modified: trunk/reactos/tools/rgenstat/rgenstat.c
 URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rgenstat/rgenstat.c?…
 ==============================================================================
 --- trunk/reactos/tools/rgenstat/rgenstat.c [iso-8859-1] (original)
 +++ trunk/reactos/tools/rgenstat/rgenstat.c [iso-8859-1] Wed Nov 19 13:59:54 2008
 @@ -553,7 +553,11 @@
                 }
               else
                 {
 -                  getcwd(buf, sizeof(buf));
 +                  if (!getcwd(buf, sizeof(buf)))
 +                    {
 +                      printf("Can't get CWD: %s\n", strerror(errno));
 +                      return;
 +                    }
                   strcat(buf, DIR_SEPARATOR_STRING);
                   strcat(buf, path);
                   strcat(buf, entry->d_name);
 @@ -611,7 +615,11 @@
             }
           else
             {
 -              getcwd(buf, sizeof(buf));
 +              if (!getcwd(buf, sizeof(buf)))
 +                {
 +                  printf("Can't get CWD: %s\n", strerror(errno));
 +                  return;
 +                }
               strcat(buf, DIR_SEPARATOR_STRING);
               strcat(buf, path);
               strcat(buf, entry->d_name);