<p dir="ltr">Thanks Richard </p>
<div class="gmail_quote">On May 23, 2016 2:33 AM, &quot;Richard Purdie&quot; &lt;<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>&gt; wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><a href="http://git.openembedded.org/openembedded-core-contrib/commit/?id=642c6cf0b6a0371de476513162bd0cefa9c438b3" rel="noreferrer" target="_blank">http://git.openembedded.org/openembedded-core-contrib/commit/?id=642c6cf0b6a0371de476513162bd0cefa9c438b3</a><br>
introduces a problem if the USERADD_PARAM variable has trailing<br>
whitespace as the code infinitely loops causing build hangs.<br>
<br>
Add a similar sed expression to $remaining to avoid this.<br>
<br>
Signed-off-by: Richard Purdie &lt;<a href="mailto:richard.purdie@linuxfoundation.org">richard.purdie@linuxfoundation.org</a>&gt;<br>
<br>
diff --git a/meta/classes/useradd.bbclass b/meta/classes/useradd.bbclass<br>
index 67dae88..28dd341 100644<br>
--- a/meta/classes/useradd.bbclass<br>
+++ b/meta/classes/useradd.bbclass<br>
@@ -55,14 +55,14 @@ if test &quot;x`echo $GROUPADD_PARAM | tr -d &#39;[:space:]&#39;`&quot; != &quot;x&quot;; then<br>
        # Invoke multiple instances of groupadd for parameter lists<br>
        # separated by &#39;;&#39;<br>
        opts=`echo &quot;$GROUPADD_PARAM&quot; | cut -d &#39;;&#39; -f 1 | sed -e &#39;s#[ \t]*$##&#39;`<br>
-       remaining=`echo &quot;$GROUPADD_PARAM&quot; | cut -d &#39;;&#39; -f 2-`<br>
+       remaining=`echo &quot;$GROUPADD_PARAM&quot; | cut -d &#39;;&#39; -f 2- | sed -e &#39;s#[ \t]*$##&#39;`<br>
        while test &quot;x$opts&quot; != &quot;x&quot;; do<br>
                perform_groupadd &quot;$SYSROOT&quot; &quot;$OPT $opts&quot;<br>
                if test &quot;x$opts&quot; = &quot;x$remaining&quot;; then<br>
                        break<br>
                fi<br>
                opts=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 1 | sed -e &#39;s#[ \t]*$##&#39;`<br>
-               remaining=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 2-`<br>
+               remaining=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 2- | sed -e &#39;s#[ \t]*$##&#39;`<br>
        done<br>
 fi<br>
<br>
@@ -71,14 +71,14 @@ if test &quot;x`echo $USERADD_PARAM | tr -d &#39;[:space:]&#39;`&quot; != &quot;x&quot;; then<br>
        # Invoke multiple instances of useradd for parameter lists<br>
        # separated by &#39;;&#39;<br>
        opts=`echo &quot;$USERADD_PARAM&quot; | cut -d &#39;;&#39; -f 1 | sed -e &#39;s#[ \t]*$##&#39;`<br>
-       remaining=`echo &quot;$USERADD_PARAM&quot; | cut -d &#39;;&#39; -f 2-`<br>
+       remaining=`echo &quot;$USERADD_PARAM&quot; | cut -d &#39;;&#39; -f 2- | sed -e &#39;s#[ \t]*$##&#39;`<br>
        while test &quot;x$opts&quot; != &quot;x&quot;; do<br>
                perform_useradd &quot;$SYSROOT&quot; &quot;$OPT $opts&quot;<br>
                if test &quot;x$opts&quot; = &quot;x$remaining&quot;; then<br>
                        break<br>
                fi<br>
                opts=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 1 | sed -e &#39;s#[ \t]*$##&#39;`<br>
-               remaining=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 2-`<br>
+               remaining=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 2- | sed -e &#39;s#[ \t]*$##&#39;`<br>
        done<br>
 fi<br>
<br>
@@ -87,14 +87,14 @@ if test &quot;x`echo $GROUPMEMS_PARAM | tr -d &#39;[:space:]&#39;`&quot; != &quot;x&quot;; then<br>
        # Invoke multiple instances of groupmems for parameter lists<br>
        # separated by &#39;;&#39;<br>
        opts=`echo &quot;$GROUPMEMS_PARAM&quot; | cut -d &#39;;&#39; -f 1 | sed -e &#39;s#[ \t]*$##&#39;`<br>
-       remaining=`echo &quot;$GROUPMEMS_PARAM&quot; | cut -d &#39;;&#39; -f 2-`<br>
+       remaining=`echo &quot;$GROUPMEMS_PARAM&quot; | cut -d &#39;;&#39; -f 2- | sed -e &#39;s#[ \t]*$##&#39;`<br>
        while test &quot;x$opts&quot; != &quot;x&quot;; do<br>
                perform_groupmems &quot;$SYSROOT&quot; &quot;$OPT $opts&quot;<br>
                if test &quot;x$opts&quot; = &quot;x$remaining&quot;; then<br>
                        break<br>
                fi<br>
                opts=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 1 | sed -e &#39;s#[ \t]*$##&#39;`<br>
-               remaining=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 2-`<br>
+               remaining=`echo &quot;$remaining&quot; | cut -d &#39;;&#39; -f 2- | sed -e &#39;s#[ \t]*$##&#39;`<br>
        done<br>
 fi<br>
 }<br>
<br>
<br>
--<br>
_______________________________________________<br>
Openembedded-core mailing list<br>
<a href="mailto:Openembedded-core@lists.openembedded.org">Openembedded-core@lists.openembedded.org</a><br>
<a href="http://lists.openembedded.org/mailman/listinfo/openembedded-core" rel="noreferrer" target="_blank">http://lists.openembedded.org/mailman/listinfo/openembedded-core</a><br>
</blockquote></div>