[PATCH] fix NAME="foo-%c{N}" gets a truncated name

On Wed, Mar 03, 2004 at 02:43:34PM -0800, Patrick Mansfield wrote:
> Here is a fix and a new test for the problem Atul hit, where if we have a
> NAME based on a result of the form:
>
> 	NAME="foo-%c{7}"
>
> udev truncates the name. Without any prefix (the foo- in this example),
> the rule was working OK.

Here is a fix for the fix :)

Sorry, I broke it yesterday.
This commit is contained in:
kay.sievers@vrfy.org 2004-03-04 00:54:13 -08:00 committed by Greg KH
parent e4f9c4a46d
commit 27c3403dd8
1 changed files with 4 additions and 2 deletions

View File

@ -214,6 +214,7 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize,
struct sysfs_device *sysfs_device)
{
char temp[NAME_SIZE];
char temp2[NAME_SIZE];
char *tail;
char *pos;
char *attr;
@ -277,6 +278,7 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize,
i = atoi(attr);
if (i > 0) {
foreach_strpart(udev->program_result, " \n\r", spos, slen) {
strnfieldcpy(temp2, udev->program_result + spos, slen+1);
i--;
if (i == 0)
break;
@ -285,8 +287,8 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize,
dbg("requested part of result string not found");
break;
}
strnfieldcat(string, udev->program_result + spos, slen+1);
dbg("substitute part of result string '%s'", pos);
strnfieldcat(string, temp2, maxsize);
dbg("substitute part of result string '%s'", temp2);
} else {
strnfieldcat(string, udev->program_result, maxsize);
dbg("substitute result string '%s'", udev->program_result);