History

kernel/sysctl_binary.c: use scnprintf() instead of snprintf()

snprintf() will return the 'ideal' length which may be larger than real buffer length, if we only want to use real length, need use scnprintf() instead of.

Chen Gang committed 13 years ago

Commit f02147e1 parent 78338191 file · +3 −3Browse files

Showing the changes to kernel/sysctl_binary.c (1 of 1 file). Show all

Unified · Split

kernel/sysctl_binary.c+3−3
@@ -1024,7 +1024,7 @@ static ssize_t bin_intvec(struct file *file, · 1023 unmodified lines
1024 if (get_user(value, vec + i))1024 if (get_user(value, vec + i))
1025 goto out_kfree;1025 goto out_kfree;
1026 1026
1027 str += snprintf(str, end - str, "%lu\t", value);1027 str += scnprintf(str, end - str, "%lu\t", value);
1028 }1028 }
1029 1029
1030 result = kernel_write(file, buffer, str - buffer, 0);1030 result = kernel_write(file, buffer, str - buffer, 0);
@@ -1095,7 +1095,7 @@ static ssize_t bin_ulongvec(struct file *file, · 64 unmodified lines
1095 if (get_user(value, vec + i))1095 if (get_user(value, vec + i))
1096 goto out_kfree;1096 goto out_kfree;
1097 1097
1098 str += snprintf(str, end - str, "%lu\t", value);1098 str += scnprintf(str, end - str, "%lu\t", value);
1099 }1099 }
1100 1100
1101 result = kernel_write(file, buffer, str - buffer, 0);1101 result = kernel_write(file, buffer, str - buffer, 0);
@@ -1205,7 +1205,7 @@ static ssize_t bin_dn_node_address(struct file *file, · 103 unmodified lines
1205 if (get_user(dnaddr, (__le16 __user *)newval))1205 if (get_user(dnaddr, (__le16 __user *)newval))
1206 goto out;1206 goto out;
1207 1207
1208 len = snprintf(buf, sizeof(buf), "%hu.%hu",1208 len = scnprintf(buf, sizeof(buf), "%hu.%hu",
1209 le16_to_cpu(dnaddr) >> 10,1209 le16_to_cpu(dnaddr) >> 10,
1210 le16_to_cpu(dnaddr) & 0x3ff);1210 le16_to_cpu(dnaddr) & 0x3ff);
1211 1211