Patchwork initscripts/urandom: change random-seed directory

login
register
mail settings
Submitter Ming Liu
Date Nov. 30, 2012, 10:19 a.m.
Message ID <1354270768-5265-1-git-send-email-ming.liu@windriver.com>
Download mbox | patch
Permalink /patch/39945/
State New
Headers show

Comments

Ming Liu - Nov. 30, 2012, 10:19 a.m.
/etc/init.d/urandom fails to start/stop because it tries to save
random-seed into /var/lib/urandom folder which does not exist in the
file system.

Fixed by using /var/lib/misc instead of /var/lib/urandom.

Signed-off-by: Ming Liu <ming.liu@windriver.com>
---
 meta/recipes-core/initscripts/initscripts-1.0/urandom | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
Saul Wold - Nov. 30, 2012, 7:24 p.m.
On 11/30/2012 02:19 AM, Ming Liu wrote:
> /etc/init.d/urandom fails to start/stop because it tries to save
> random-seed into /var/lib/urandom folder which does not exist in the
> file system.
>
Why not create it in the recipe's do_install?  Or possibly add it to 
volatiles file.

Also talk with Qi Chen about the readonly FS stuff to make sure this 
will work.

Sau!

> Fixed by using /var/lib/misc instead of /var/lib/urandom.
>
> Signed-off-by: Ming Liu <ming.liu@windriver.com>
> ---
>   meta/recipes-core/initscripts/initscripts-1.0/urandom | 11 ++++++-----
>   1 file changed, 6 insertions(+), 5 deletions(-)
>
> diff --git a/meta/recipes-core/initscripts/initscripts-1.0/urandom b/meta/recipes-core/initscripts/initscripts-1.0/urandom
> index eb3a7c3..1cf7c5c 100755
> --- a/meta/recipes-core/initscripts/initscripts-1.0/urandom
> +++ b/meta/recipes-core/initscripts/initscripts-1.0/urandom
> @@ -14,18 +14,19 @@
>   test -c /dev/urandom || exit 0
>   . /etc/default/rcS
>
> +SAVEDFILE=/var/lib/misc/random-seed
>   case "$1" in
>   	start|"")
>   		test "$VERBOSE" != no && echo "Initializing random number generator..."
>   		# Load and then save 512 bytes,
>   		# which is the size of the entropy pool
> -		if test -f /var/lib/urandom/random-seed
> +		if test -f $SAVEDFILE
>   		then
> -			cat /var/lib/urandom/random-seed >/dev/urandom
> +			cat $SAVEDFILE >/dev/urandom
>   		fi
> -		rm -f /var/lib/urandom/random-seed
> +		rm -f $SAVEDFILE
>   		umask 077
> -		dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
> +		dd if=/dev/urandom of=$SAVEDFILE count=1 \
>   			>/dev/null 2>&1 || echo "urandom start: failed."
>   		umask 022
>   		;;
> @@ -34,7 +35,7 @@ case "$1" in
>   		# see documentation in linux/drivers/char/random.c
>   		test "$VERBOSE" != no && echo "Saving random seed..."
>   		umask 077
> -		dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
> +		dd if=/dev/urandom of=$SAVEDFILE count=1 \
>   			>/dev/null 2>&1 || echo "urandom stop: failed."
>   		;;
>   	*)
>
Ming Liu - Dec. 4, 2012, 3:26 a.m.
On 12/01/2012 03:24 AM, Saul Wold wrote:
> On 11/30/2012 02:19 AM, Ming Liu wrote:
>> /etc/init.d/urandom fails to start/stop because it tries to save
>> random-seed into /var/lib/urandom folder which does not exist in the
>> file system.
>>
> Why not create it in the recipe's do_install?  Or possibly add it to 
> volatiles file.

OK, It may be a more reasonable solution creating it in do_install, I 
will send the V1 patch.
>
> Also talk with Qi Chen about the readonly FS stuff to make sure this 
> will work.
>

OK, I will talk to Qi.

> Sau!
>
>> Fixed by using /var/lib/misc instead of /var/lib/urandom.
>>
>> Signed-off-by: Ming Liu <ming.liu@windriver.com>
>> ---
>>   meta/recipes-core/initscripts/initscripts-1.0/urandom | 11 ++++++-----
>>   1 file changed, 6 insertions(+), 5 deletions(-)
>>
>> diff --git a/meta/recipes-core/initscripts/initscripts-1.0/urandom 
>> b/meta/recipes-core/initscripts/initscripts-1.0/urandom
>> index eb3a7c3..1cf7c5c 100755
>> --- a/meta/recipes-core/initscripts/initscripts-1.0/urandom
>> +++ b/meta/recipes-core/initscripts/initscripts-1.0/urandom
>> @@ -14,18 +14,19 @@
>>   test -c /dev/urandom || exit 0
>>   . /etc/default/rcS
>>
>> +SAVEDFILE=/var/lib/misc/random-seed
>>   case "$1" in
>>       start|"")
>>           test "$VERBOSE" != no && echo "Initializing random number 
>> generator..."
>>           # Load and then save 512 bytes,
>>           # which is the size of the entropy pool
>> -        if test -f /var/lib/urandom/random-seed
>> +        if test -f $SAVEDFILE
>>           then
>> -            cat /var/lib/urandom/random-seed >/dev/urandom
>> +            cat $SAVEDFILE >/dev/urandom
>>           fi
>> -        rm -f /var/lib/urandom/random-seed
>> +        rm -f $SAVEDFILE
>>           umask 077
>> -        dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
>> +        dd if=/dev/urandom of=$SAVEDFILE count=1 \
>>               >/dev/null 2>&1 || echo "urandom start: failed."
>>           umask 022
>>           ;;
>> @@ -34,7 +35,7 @@ case "$1" in
>>           # see documentation in linux/drivers/char/random.c
>>           test "$VERBOSE" != no && echo "Saving random seed..."
>>           umask 077
>> -        dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
>> +        dd if=/dev/urandom of=$SAVEDFILE count=1 \
>>               >/dev/null 2>&1 || echo "urandom stop: failed."
>>           ;;
>>       *)
>>
>
>

Patch

diff --git a/meta/recipes-core/initscripts/initscripts-1.0/urandom b/meta/recipes-core/initscripts/initscripts-1.0/urandom
index eb3a7c3..1cf7c5c 100755
--- a/meta/recipes-core/initscripts/initscripts-1.0/urandom
+++ b/meta/recipes-core/initscripts/initscripts-1.0/urandom
@@ -14,18 +14,19 @@ 
 test -c /dev/urandom || exit 0
 . /etc/default/rcS
 
+SAVEDFILE=/var/lib/misc/random-seed
 case "$1" in
 	start|"")
 		test "$VERBOSE" != no && echo "Initializing random number generator..."
 		# Load and then save 512 bytes,
 		# which is the size of the entropy pool
-		if test -f /var/lib/urandom/random-seed
+		if test -f $SAVEDFILE
 		then
-			cat /var/lib/urandom/random-seed >/dev/urandom
+			cat $SAVEDFILE >/dev/urandom
 		fi
-		rm -f /var/lib/urandom/random-seed
+		rm -f $SAVEDFILE
 		umask 077
-		dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
+		dd if=/dev/urandom of=$SAVEDFILE count=1 \
 			>/dev/null 2>&1 || echo "urandom start: failed."
 		umask 022
 		;;
@@ -34,7 +35,7 @@  case "$1" in
 		# see documentation in linux/drivers/char/random.c
 		test "$VERBOSE" != no && echo "Saving random seed..."
 		umask 077
-		dd if=/dev/urandom of=/var/lib/urandom/random-seed count=1 \
+		dd if=/dev/urandom of=$SAVEDFILE count=1 \
 			>/dev/null 2>&1 || echo "urandom stop: failed."
 		;;
 	*)