summary | 
shortlog | 
log | 
commit | commitdiff | 
tree
raw | 
patch | 
inline | side by side (from parent 1: 
54be5b5)
 
byte, it's not always a newline!
 
        // now the cmdline tag
        tag->hdr.tag = ATAG_CMDLINE;
 
        // now the cmdline tag
        tag->hdr.tag = ATAG_CMDLINE;
-       // must be at least +3!! 1 for the null and 2 for the ???
-       tag->hdr.size = (strlen(cmdline) + 3 + sizeof(struct tag_header)) >> 2;
-       //tag->hdr.size = (strlen(cmdline) + 10 + sizeof(struct tag_header)) >> 2;
+       // tag header, zero-terminated string and round size to 32-bit words
+       tag->hdr.size = (sizeof (struct tag_header) + strlen (cmdline) + 1 + 3) >> 2;
        strcpy(tag->u.cmdline.cmdline,cmdline);
        tag = tag_next(tag);
 
        strcpy(tag->u.cmdline.cmdline,cmdline);
        tag = tag_next(tag);
 
 
        initrd[strlen(initrd)-1]=0;
        
        fgets(cmd,200,stream);
        initrd[strlen(initrd)-1]=0;
        
        fgets(cmd,200,stream);
+       if (cmd[strlen(cmd)-1] == 0x0a)
+       {
+               cmd[strlen(cmd)-1]=0;
+               if (cmd[strlen(cmd)-2] == 0x0d)
+                       cmd[strlen(cmd)-2]=0;
+       }