[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:
committed by
Greg KH
parent
e4f9c4a46d
commit
27c3403dd8
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user