diff options
Diffstat (limited to 'e2fsprogs/blkid/tag.c')
-rw-r--r-- | e2fsprogs/blkid/tag.c | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/e2fsprogs/blkid/tag.c b/e2fsprogs/blkid/tag.c index e2c785cf0..95112eba5 100644 --- a/e2fsprogs/blkid/tag.c +++ b/e2fsprogs/blkid/tag.c | |||
@@ -41,11 +41,8 @@ void blkid_free_tag(blkid_tag tag) | |||
41 | list_del(&tag->bit_tags); /* list of tags for this device */ | 41 | list_del(&tag->bit_tags); /* list of tags for this device */ |
42 | list_del(&tag->bit_names); /* list of tags with this type */ | 42 | list_del(&tag->bit_names); /* list of tags with this type */ |
43 | 43 | ||
44 | if (tag->bit_name) | 44 | free(tag->bit_name); |
45 | free(tag->bit_name); | 45 | free(tag->bit_val); |
46 | if (tag->bit_val) | ||
47 | free(tag->bit_val); | ||
48 | |||
49 | free(tag); | 46 | free(tag); |
50 | } | 47 | } |
51 | 48 | ||
@@ -112,8 +109,7 @@ int blkid_set_tag(blkid_dev dev, const char *name, | |||
112 | return -BLKID_ERR_MEM; | 109 | return -BLKID_ERR_MEM; |
113 | t = blkid_find_tag_dev(dev, name); | 110 | t = blkid_find_tag_dev(dev, name); |
114 | if (!value) { | 111 | if (!value) { |
115 | if (t) | 112 | blkid_free_tag(t); |
116 | blkid_free_tag(t); | ||
117 | } else if (t) { | 113 | } else if (t) { |
118 | if (!strcmp(t->bit_val, val)) { | 114 | if (!strcmp(t->bit_val, val)) { |
119 | /* Same thing, exit */ | 115 | /* Same thing, exit */ |
@@ -165,12 +161,10 @@ int blkid_set_tag(blkid_dev dev, const char *name, | |||
165 | return 0; | 161 | return 0; |
166 | 162 | ||
167 | errout: | 163 | errout: |
168 | if (t) | 164 | blkid_free_tag(t); |
169 | blkid_free_tag(t); | 165 | if (!t) |
170 | else if (val) | ||
171 | free(val); | 166 | free(val); |
172 | if (head) | 167 | blkid_free_tag(head); |
173 | blkid_free_tag(head); | ||
174 | return -BLKID_ERR_MEM; | 168 | return -BLKID_ERR_MEM; |
175 | } | 169 | } |
176 | 170 | ||