On Tue, Jan 14, 2014 at 10:50 PM, Gene Cumm <gene.cumm at gmail.com> wrote:> On Tue, Jan 14, 2014 at 9:28 AM, Johann Obermayr > <johann.obermayr at sigmatek.at> wrote: >> Hello, >> >> i'm using version 4.07. >> On my computer extlinux does not work. >> after debugging, i found the trouble. >> >> in the function parse_mountinfo there was using a function get_string. >> in the function get_string there was a line (42) } else if (ch == '\\') { >> but in my mountinfo list, there was \ , but not with octal digit. >> so the function get_string will fail. >> >> here are some information >> ### fstab ### >> #Mount Build environment >> //10.30.20.61/platform /home/platform smbfs guest,ro 0 0 >> //10.30.20.61/builds /home/builds smbfs guest,ro >> 0 0 >> >> #### this is a part from /proc/self/mountinfo ######## >> 33 20 0:23 / /home/builds ro,relatime - cifs //10.30.20.61/builds >> ro,sec=ntlm,unc=\\10.30.20.61\builds,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >> 32 20 0:24 / /home/platform ro,relatime - cifs //10.30.20.61/platform >> ro,sec=ntlm,unc=\\10.30.20.61\platform,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >> >> and after this entrys, there are my mounting points. extlinux does not found >> the correct entry. > > If I'm reading correctly, you feel the get_string() call on line 163 > (retrieving the mount options for m->mountopt will return -1 due to > the double backslash). Am I correct? This seems rather odd that your > mount options have the DOS form of the UNC path.Your mountinfo should have \134\134 not \\. -- -Gene
Am 15.01.2014 04:57, schrieb Gene Cumm:> On Tue, Jan 14, 2014 at 10:50 PM, Gene Cumm <gene.cumm at gmail.com> wrote: >> On Tue, Jan 14, 2014 at 9:28 AM, Johann Obermayr >> <johann.obermayr at sigmatek.at> wrote: >>> Hello, >>> >>> i'm using version 4.07. >>> On my computer extlinux does not work. >>> after debugging, i found the trouble. >>> >>> in the function parse_mountinfo there was using a function get_string. >>> in the function get_string there was a line (42) } else if (ch == '\\') { >>> but in my mountinfo list, there was \ , but not with octal digit. >>> so the function get_string will fail. >>> >>> here are some information >>> ### fstab ### >>> #Mount Build environment >>> //10.30.20.61/platform /home/platform smbfs guest,ro 0 0 >>> //10.30.20.61/builds /home/builds smbfs guest,ro >>> 0 0 >>> >>> #### this is a part from /proc/self/mountinfo ######## >>> 33 20 0:23 / /home/builds ro,relatime - cifs //10.30.20.61/builds >>> ro,sec=ntlm,unc=\\10.30.20.61\builds,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >>> 32 20 0:24 / /home/platform ro,relatime - cifs //10.30.20.61/platform >>> ro,sec=ntlm,unc=\\10.30.20.61\platform,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >>> >>> and after this entrys, there are my mounting points. extlinux does not found >>> the correct entry. >> If I'm reading correctly, you feel the get_string() call on line 163 >> (retrieving the mount options for m->mountopt will return -1 due to >> the double backslash). Am I correct? This seems rather odd that your >> mount options have the DOS form of the UNC path. > Your mountinfo should have \134\134 not \\. >Hello, all our Linux Computer use Ubuntu 12.04 with the same mount entrys. And all have unc=\\ipaddr..... in the file /proc/<pid>/mountinfo We don't known, how to change this to \134\134. Best regards Johann
On Wed, Jan 15, 2014 at 3:26 AM, Johann Obermayr <johann.obermayr at sigmatek.at> wrote:> Am 15.01.2014 04:57, schrieb Gene Cumm: > >> On Tue, Jan 14, 2014 at 10:50 PM, Gene Cumm <gene.cumm at gmail.com> wrote: >>> >>> On Tue, Jan 14, 2014 at 9:28 AM, Johann Obermayr >>> <johann.obermayr at sigmatek.at> wrote: >>>> >>>> Hello, >>>> >>>> i'm using version 4.07. >>>> On my computer extlinux does not work. >>>> after debugging, i found the trouble. >>>> >>>> in the function parse_mountinfo there was using a function get_string. >>>> in the function get_string there was a line (42) } else if (ch == '\\') >>>> { >>>> but in my mountinfo list, there was \ , but not with octal digit. >>>> so the function get_string will fail. >>>> >>>> here are some information >>>> ### fstab ### >>>> #Mount Build environment >>>> //10.30.20.61/platform /home/platform smbfs guest,ro 0 >>>> 0 >>>> //10.30.20.61/builds /home/builds smbfs guest,ro >>>> 0 0 >>>> >>>> #### this is a part from /proc/self/mountinfo ######## >>>> 33 20 0:23 / /home/builds ro,relatime - cifs //10.30.20.61/builds >>>> >>>> ro,sec=ntlm,unc=\\10.30.20.61\builds,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >>>> 32 20 0:24 / /home/platform ro,relatime - cifs //10.30.20.61/platform >>>> >>>> ro,sec=ntlm,unc=\\10.30.20.61\platform,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >>>> >>>> and after this entrys, there are my mounting points. extlinux does not >>>> found >>>> the correct entry. >>> >>> If I'm reading correctly, you feel the get_string() call on line 163 >>> (retrieving the mount options for m->mountopt will return -1 due to >>> the double backslash). Am I correct? This seems rather odd that your >>> mount options have the DOS form of the UNC path. >> >> Your mountinfo should have \134\134 not \\. >> > Hello, > > all our Linux Computer use Ubuntu 12.04 with the same mount entrys. > And all have unc=\\ipaddr..... in the file /proc/<pid>/mountinfo > We don't known, how to change this to \134\134.I presume these are mounted on boot from the fstab entry above. What kernel version? -- -Gene
On 01/14/2014 07:57 PM, Gene Cumm wrote:>>> >>> #### this is a part from /proc/self/mountinfo ######## >>> 33 20 0:23 / /home/builds ro,relatime - cifs //10.30.20.61/builds >>> ro,sec=ntlm,unc=\\10.30.20.61\builds,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >>> 32 20 0:24 / /home/platform ro,relatime - cifs //10.30.20.61/platform >>> ro,sec=ntlm,unc=\\10.30.20.61\platform,username=,uid=0,noforceuid,gid=0,noforcegid,addr=10.30.20.61,unix,posixpaths,serverino,acl,rsize=1048576,wsize=65536,actimeo=1 >>> >>> and after this entrys, there are my mounting points. extlinux does not found >>> the correct entry. >> >> If I'm reading correctly, you feel the get_string() call on line 163 >> (retrieving the mount options for m->mountopt will return -1 due to >> the double backslash). Am I correct? This seems rather odd that your >> mount options have the DOS form of the UNC path. > > Your mountinfo should have \134\134 not \\. >Since this isn't what the kernel emits, this presumably has to be considered a Syslinux bug. I think the mountinfo parser can probably allow the options to simply end in newline, since it is the last field. $DEITY knows what happens if there somehow is a newline *in* this field... -hpa