mirror of
https://github.com/systemd/systemd.git
synced 2025-03-25 18:50:18 +03:00
[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:
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user