where is the bug that this fixes?

I realize that it's nice to make this code a bit more robust, but
allowing false information to pass through without errors won't help
us in the long run - in the end, /etc/boardname needs to be a file
with a single line, and boardname should return an error code and just
give up.

Auke


On Tue, Sep 6, 2011 at 9:15 PM, Jouni Peltonen <[email protected]> wrote:
> Hi,
> I have made the following changes to boardname in project 
> devel:resourcepolicy. Please review and accept ASAP.
>
> Thank You,
> Jouni Peltonen
>
> [This message was auto-generated]
>
> ---
>
> Request #23795:
>
>  submit:   
> home:jouni.peltonen:branches:devel:resourcepolicy/boardname(r19)(cleanup) -> 
> devel:resourcepolicy/boardname
>
>
> Message:
>    * Mon Sep 6 2011 Jouni Peltonen <[email protected]> - 0.7
> - Corrected boardname fileread to handle extra lines.
>
> State:   new          2011-09-06T05:07:45 jouni.peltonen
> Comment: None
>
>
>
> changes files:
> --------------
> --- boardname.changes
> +++ boardname.changes
> @@ -0,0 +1,3 @@
> +* Mon Sep 6 2011 Jouni Peltonen <[email protected]> - 0.7
> +- Corrected boardname fileread to handle extra lines.
> +
>
> new:
> ----
>  boardname_read.patch
>
> spec files:
> -----------
> --- boardname.spec
> +++ boardname.spec
> @@ -15,6 +15,7 @@
>  Source0:    boardname-%{version}.tar.gz
>  Source1:    boardname.service
>  Source100:  boardname.yaml
> +Patch0:     boardname_read.patch
>  Requires:   coreutils
>  Requires:   grep
>  Requires(post): /sbin/ldconfig
> @@ -43,6 +44,8 @@
>  %prep
>  %setup -q -n %{name}-%{version}
>
> +# boardname_read.patch
> +%patch0 -p1
>  # >> setup
>  # << setup
>
>
> other changes:
> --------------
>
> ++++++ boardname.yaml
> --- boardname.yaml
> +++ boardname.yaml
> @@ -12,7 +12,8 @@
>  Sources    :
>     - boardname-%{version}.tar.gz
>     - boardname.service
> -
> +Patches:
> +    - boardname_read.patch
>  Configure: none
>  Builder: make
>  License: GPLv2
>
> ++++++ boardname_read.patch (new)
> --- boardname_read.patch
> +++ boardname_read.patch
> +--- a/boardname.c
> ++++ b/boardname.c
> +@@ -10,14 +10,17 @@
> + * of the License.
> + */
> +
> +-#include "stdio.h"
> +-#include "stdlib.h"
> ++#include <stdio.h>
> ++#include <stdlib.h>
> ++#include <string.h>
> ++#include <ctype.h>
> +
> + #define MAXSTRING 256
> +
> + char* getboardname()
> + {
> +       char *buffer;
> ++        int   buflen;
> +       FILE *fd;
> +
> +       fd = fopen("/etc/boardname", "r");
> +@@ -28,11 +31,24 @@
> +       }
> +
> +       buffer = malloc(MAXSTRING);
> +-      while (!feof(fd))
> +-              if (fgets(buffer, MAXSTRING, fd) <= 0)
> +-                      fprintf(stderr, "Unable to read from 
> /etc/boardname.\n");
> +-
> +-      fclose(fd);
> +-
> +-      return buffer;
> ++      while (fgets(buffer, MAXSTRING, fd)){
> ++                if (!*buffer)
> ++                  continue;
> ++                buflen  = strlen(buffer);
> ++                while(buflen >= 2 && isspace(*buffer) && (*buffer!='\0')){
> ++                   memmove(buffer,buffer+1,buflen-1);
> ++                   buflen--;
> ++                }
> ++                while(buflen >= 1 && isspace(buffer[buflen-1]))  buflen--;
> ++                buffer[buflen]='\0';
> ++                if(buflen){
> ++                  fclose(fd);
> ++                  return buffer;
> ++                }
> ++        }
> ++
> ++        fclose(fd);
> ++        fprintf(stderr, "Unable to read from /etc/boardname.\n");
> ++
> ++      return NULL;
> + }
>
> _______________________________________________
> MeeGo-commits mailing list
> [email protected]
> http://lists.meego.com/listinfo/meego-commits
>
_______________________________________________
MeeGo-packaging mailing list
[email protected]
http://lists.meego.com/listinfo/meego-packaging

Reply via email to