/*
* Copyright (C) 2003 Greg Kroah-Hartman <greg@kroah.com>
- * Copyright (C) 2003-2006 Kay Sievers <kay.sievers@vrfy.org>
+ * Copyright (C) 2003-2008 Kay Sievers <kay.sievers@vrfy.org>
*
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation version 2 of the License.
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
*
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include <stddef.h>
#include "udev.h"
#include "udev_rules.h"
-#include "udev_selinux.h"
extern char **environ;
saddrlen = offsetof(struct sockaddr_un, sun_path) + 1 + strlen(&saddr.sun_path[1]);
}
- bufpos = snprintf(buf, sizeof(buf)-1, "%s@%s", action, devpath);
+ bufpos = snprintf(buf, sizeof(buf), "%s@%s", action, devpath);
bufpos++;
- for (i = 0; environ[i] != NULL && bufpos < (sizeof(buf)-1); i++) {
- bufpos += strlcpy(&buf[bufpos], environ[i], sizeof(buf) - bufpos-1);
+ for (i = 0; environ[i] != NULL && bufpos < (sizeof(buf)); i++) {
+ bufpos += strlcpy(&buf[bufpos], environ[i], sizeof(buf) - bufpos);
bufpos++;
}
if (bufpos > sizeof(buf))
do {
dbg(udevice->udev, "looking at '%s'\n", dev_parent->devpath);
value = sysfs_attr_get_value(udevice->udev, dev_parent->devpath, attr);
- if (value != NULL) {
- strlcpy(temp2, value, sizeof(temp2));
+ if (value != NULL)
break;
- }
dev_parent = sysfs_device_get_parent(udevice->udev, dev_parent);
} while (dev_parent != NULL);
}
int udev_rules_get_name(struct udev_rules *rules, struct udevice *udevice)
{
+ struct udev_rules_iter iter;
struct udev_rule *rule;
int name_set = 0;
dbg(udevice->udev, "udevice->dev->kernel='%s'\n", udevice->dev->kernel);
/* look for a matching rule to apply */
- udev_rules_iter_init(rules);
+ udev_rules_iter_init(&iter, rules);
while (1) {
- rule = udev_rules_iter_next(rules);
+ rule = udev_rules_iter_next(&iter);
if (rule == NULL)
break;
if (rule->goto_label.operation != KEY_OP_UNSET) {
dbg(udevice->udev, "moving forward to label '%s'\n", key_val(rule, &rule->goto_label));
- udev_rules_iter_label(rules, key_val(rule, &rule->goto_label));
+ udev_rules_iter_label(&iter, key_val(rule, &rule->goto_label));
}
}
}
int udev_rules_get_run(struct udev_rules *rules, struct udevice *udevice)
{
+ struct udev_rules_iter iter;
struct udev_rule *rule;
dbg(udevice->udev, "udevice->kernel='%s'\n", udevice->dev->kernel);
/* look for a matching rule to apply */
- udev_rules_iter_init(rules);
+ udev_rules_iter_init(&iter, rules);
while (1) {
- rule = udev_rules_iter_next(rules);
+ rule = udev_rules_iter_next(&iter);
if (rule == NULL)
break;
if (rule->goto_label.operation != KEY_OP_UNSET) {
dbg(udevice->udev, "moving forward to label '%s'\n", key_val(rule, &rule->goto_label));
- udev_rules_iter_label(rules, key_val(rule, &rule->goto_label));
+ udev_rules_iter_label(&iter, key_val(rule, &rule->goto_label));
}
}
}