File tree Expand file tree Collapse file tree 1 file changed +14
-20
lines changed Expand file tree Collapse file tree 1 file changed +14
-20
lines changed Original file line number Diff line number Diff line change @@ -742,34 +742,24 @@ static int property_entry_copy_data(struct property_entry *dst,
742
742
{
743
743
int error ;
744
744
745
- dst -> name = kstrdup (src -> name , GFP_KERNEL );
746
- if (!dst -> name )
747
- return - ENOMEM ;
748
-
749
745
if (src -> is_array ) {
750
- if (!src -> length ) {
751
- error = - ENODATA ;
752
- goto out_free_name ;
753
- }
746
+ if (!src -> length )
747
+ return - ENODATA ;
754
748
755
749
if (src -> is_string ) {
756
750
error = property_copy_string_array (dst , src );
757
751
if (error )
758
- goto out_free_name ;
752
+ return error ;
759
753
} else {
760
754
dst -> pointer .raw_data = kmemdup (src -> pointer .raw_data ,
761
755
src -> length , GFP_KERNEL );
762
- if (!dst -> pointer .raw_data ) {
763
- error = - ENOMEM ;
764
- goto out_free_name ;
765
- }
756
+ if (!dst -> pointer .raw_data )
757
+ return - ENOMEM ;
766
758
}
767
759
} else if (src -> is_string ) {
768
760
dst -> value .str = kstrdup (src -> value .str , GFP_KERNEL );
769
- if (!dst -> value .str && src -> value .str ) {
770
- error = - ENOMEM ;
771
- goto out_free_name ;
772
- }
761
+ if (!dst -> value .str && src -> value .str )
762
+ return - ENOMEM ;
773
763
} else {
774
764
dst -> value .raw_data = src -> value .raw_data ;
775
765
}
@@ -778,11 +768,15 @@ static int property_entry_copy_data(struct property_entry *dst,
778
768
dst -> is_array = src -> is_array ;
779
769
dst -> is_string = src -> is_string ;
780
770
771
+ dst -> name = kstrdup (src -> name , GFP_KERNEL );
772
+ if (!dst -> name )
773
+ goto out_free_data ;
774
+
781
775
return 0 ;
782
776
783
- out_free_name :
784
- kfree (dst -> name );
785
- return error ;
777
+ out_free_data :
778
+ property_entry_free_data (dst );
779
+ return - ENOMEM ;
786
780
}
787
781
788
782
/**
You can’t perform that action at this time.
0 commit comments