[PATCH v4 3/4] libusbg: Moved mkdir() functions

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



mkdir() function is now performed after successful memory allocation
and gadget function creation.

Signed-off-by: Stanislaw Wadas <s.wadas@xxxxxxxxxxx>
---
 src/gadget.c |   36 ++++++++++++++++++------------------
 1 file changed, 18 insertions(+), 18 deletions(-)

diff --git a/src/gadget.c b/src/gadget.c
index d226d32..79a1698 100644
--- a/src/gadget.c
+++ b/src/gadget.c
@@ -492,12 +492,6 @@ struct gadget *gadget_create_gadget(struct state *s, char *name,
 
 	sprintf(gpath, "%s/%s", s->path, name);
 
-	ret = mkdir(gpath, S_IRWXU|S_IRWXG|S_IRWXO);
-	if (ret < 0) {
-		ERRORNO("%s\n", gpath);
-		return NULL;
-	}
-
 	g = malloc(sizeof(struct gadget));
 	if (!g) {
 		ERRORNO("allocating gadget\n");
@@ -515,6 +509,12 @@ struct gadget *gadget_create_gadget(struct state *s, char *name,
 	gadget_write_hex16(s->path, name, "idVendor", vendor);
 	gadget_write_hex16(s->path, name, "idProduct", product);
 
+	ret = mkdir(gpath, S_IRWXU|S_IRWXG|S_IRWXO);
+	if (ret < 0) {
+		ERRORNO("%s\n", gpath);
+		return NULL;
+	}
+
 	/* Insert in string order */
 	if (TAILQ_EMPTY(&s->gadgets) ||
 	    (strcmp(name, TAILQ_FIRST(&s->gadgets)->name) < 0))
@@ -628,12 +628,6 @@ struct function *gadget_create_function(struct gadget *g, enum function_type typ
 
 	sprintf(fpath, "%s/%s/functions/%s", g->path, g->name, name);
 
-	ret = mkdir(fpath, S_IRWXU|S_IRWXG|S_IRWXO);
-	if (ret < 0) {
-		ERRORNO("%s\n", fpath);
-		return NULL;
-	}
-
 	f = malloc(sizeof(struct function));
 	if (!f) {
 		ERRORNO("allocating function\n");
@@ -646,6 +640,12 @@ struct function *gadget_create_function(struct gadget *g, enum function_type typ
 
 	gadget_parse_function_attrs(f);
 
+	ret = mkdir(fpath, S_IRWXU|S_IRWXG|S_IRWXO);
+	if (ret < 0) {
+		ERRORNO("%s\n", fpath);
+		return NULL;
+	}
+
 	/* Insert in string order */
 	if (TAILQ_EMPTY(&g->functions) ||
 	    (strcmp(name, TAILQ_FIRST(&g->functions)->name) < 0))
@@ -682,12 +682,6 @@ struct config *gadget_create_config(struct gadget *g, char *name)
 
 	sprintf(cpath, "%s/%s/configs/%s", g->path, g->name, name);
 
-	ret = mkdir(cpath, S_IRWXU|S_IRWXG|S_IRWXO);
-	if (ret < 0) {
-		ERRORNO("%s\n", cpath);
-		return NULL;
-	}
-
 	c = malloc(sizeof(struct config));
 	if (!c) {
 		ERRORNO("allocating configuration\n");
@@ -698,6 +692,12 @@ struct config *gadget_create_config(struct gadget *g, char *name)
 	strcpy(c->name, name);
 	sprintf(c->path, "%s/%s/%s/%s", g->path, g->name, "configs", name);
 
+	ret = mkdir(cpath, S_IRWXU|S_IRWXG|S_IRWXO);
+	if (ret < 0) {
+		ERRORNO("%s\n", cpath);
+		return NULL;
+	}
+
 	/* Insert in string order */
 	if (TAILQ_EMPTY(&g->configs) ||
 	    (strcmp(name, TAILQ_FIRST(&g->configs)->name) < 0))
-- 
1.7.9.5

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux