diff options
| author | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-08 09:07:50 +0100 |
|---|---|---|
| committer | Denys Vlasenko <vda.linux@googlemail.com> | 2010-01-08 09:07:50 +0100 |
| commit | 9037787eaee5efb58fd46f326397193b16b161dd (patch) | |
| tree | dfd0e7d93faf711ca7dcf8c7fe0abfb21082e3d3 | |
| parent | ef3817c6dcbf9270d36b48a0547e507221abce74 (diff) | |
| download | busybox-w32-9037787eaee5efb58fd46f326397193b16b161dd.tar.gz busybox-w32-9037787eaee5efb58fd46f326397193b16b161dd.tar.bz2 busybox-w32-9037787eaee5efb58fd46f326397193b16b161dd.zip | |
*: fix places where we were still using malloc/realloc
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
| -rw-r--r-- | e2fsprogs/old_e2fsprogs/ext2fs/ext2fs_inline.c | 4 | ||||
| -rw-r--r-- | e2fsprogs/old_e2fsprogs/fsck.c | 8 | ||||
| -rw-r--r-- | editors/ed.c | 19 | ||||
| -rw-r--r-- | editors/sed.c | 2 | ||||
| -rw-r--r-- | networking/libiproute/ipaddress.c | 42 |
5 files changed, 29 insertions, 46 deletions
diff --git a/e2fsprogs/old_e2fsprogs/ext2fs/ext2fs_inline.c b/e2fsprogs/old_e2fsprogs/ext2fs/ext2fs_inline.c index da1cf5be5..b9aab440a 100644 --- a/e2fsprogs/old_e2fsprogs/ext2fs/ext2fs_inline.c +++ b/e2fsprogs/old_e2fsprogs/ext2fs/ext2fs_inline.c | |||
| @@ -50,9 +50,7 @@ errcode_t ext2fs_resize_mem(unsigned long EXT2FS_ATTR((unused)) old_size, | |||
| 50 | /* Use "memcpy" for pointer assignments here to avoid problems | 50 | /* Use "memcpy" for pointer assignments here to avoid problems |
| 51 | * with C99 strict type aliasing rules. */ | 51 | * with C99 strict type aliasing rules. */ |
| 52 | memcpy(&p, ptr, sizeof (p)); | 52 | memcpy(&p, ptr, sizeof (p)); |
| 53 | p = realloc(p, size); | 53 | p = xrealloc(p, size); |
| 54 | if (!p) | ||
| 55 | return EXT2_ET_NO_MEMORY; | ||
| 56 | memcpy(ptr, &p, sizeof (p)); | 54 | memcpy(ptr, &p, sizeof (p)); |
| 57 | return 0; | 55 | return 0; |
| 58 | } | 56 | } |
diff --git a/e2fsprogs/old_e2fsprogs/fsck.c b/e2fsprogs/old_e2fsprogs/fsck.c index 687938c24..c0964f79d 100644 --- a/e2fsprogs/old_e2fsprogs/fsck.c +++ b/e2fsprogs/old_e2fsprogs/fsck.c | |||
| @@ -377,8 +377,7 @@ static struct fs_info *create_fs_device(const char *device, const char *mntpnt, | |||
| 377 | { | 377 | { |
| 378 | struct fs_info *fs; | 378 | struct fs_info *fs; |
| 379 | 379 | ||
| 380 | if (!(fs = malloc(sizeof(struct fs_info)))) | 380 | fs = xmalloc(sizeof(struct fs_info)); |
| 381 | return NULL; | ||
| 382 | 381 | ||
| 383 | fs->device = string_copy(device); | 382 | fs->device = string_copy(device); |
| 384 | fs->mountpt = string_copy(mntpnt); | 383 | fs->mountpt = string_copy(mntpnt); |
| @@ -573,10 +572,7 @@ static int execute(const char *type, const char *device, const char *mntpt, | |||
| 573 | struct fsck_instance *inst, *p; | 572 | struct fsck_instance *inst, *p; |
| 574 | pid_t pid; | 573 | pid_t pid; |
| 575 | 574 | ||
| 576 | inst = malloc(sizeof(struct fsck_instance)); | 575 | inst = xzalloc(sizeof(struct fsck_instance)); |
| 577 | if (!inst) | ||
| 578 | return ENOMEM; | ||
| 579 | memset(inst, 0, sizeof(struct fsck_instance)); | ||
| 580 | 576 | ||
| 581 | prog = xasprintf("fsck.%s", type); | 577 | prog = xasprintf("fsck.%s", type); |
| 582 | argv[0] = prog; | 578 | argv[0] = prog; |
diff --git a/editors/ed.c b/editors/ed.c index 9ce8bead1..516b8d78d 100644 --- a/editors/ed.c +++ b/editors/ed.c | |||
| @@ -454,11 +454,7 @@ static void subCommand(const char *cmd, int num1, int num2) | |||
| 454 | * structure and use that. Link it in in place of | 454 | * structure and use that. Link it in in place of |
| 455 | * the old line structure. | 455 | * the old line structure. |
| 456 | */ | 456 | */ |
| 457 | nlp = malloc(sizeof(LINE) + lp->len + deltaLen); | 457 | nlp = xmalloc(sizeof(LINE) + lp->len + deltaLen); |
| 458 | if (nlp == NULL) { | ||
| 459 | bb_error_msg("can't get memory for line"); | ||
| 460 | return; | ||
| 461 | } | ||
| 462 | 458 | ||
| 463 | nlp->len = lp->len + deltaLen; | 459 | nlp->len = lp->len + deltaLen; |
| 464 | 460 | ||
| @@ -712,12 +708,7 @@ static int readLines(const char *file, int num) | |||
| 712 | 708 | ||
| 713 | if (bufUsed >= bufSize) { | 709 | if (bufUsed >= bufSize) { |
| 714 | len = (bufSize * 3) / 2; | 710 | len = (bufSize * 3) / 2; |
| 715 | cp = realloc(bufBase, len); | 711 | cp = xrealloc(bufBase, len); |
| 716 | if (cp == NULL) { | ||
| 717 | bb_error_msg("no memory for buffer"); | ||
| 718 | close(fd); | ||
| 719 | return FALSE; | ||
| 720 | } | ||
| 721 | bufBase = cp; | 712 | bufBase = cp; |
| 722 | bufPtr = bufBase + bufUsed; | 713 | bufPtr = bufBase + bufUsed; |
| 723 | bufSize = len; | 714 | bufSize = len; |
| @@ -872,11 +863,7 @@ static int insertLine(int num, const char *data, int len) | |||
| 872 | return FALSE; | 863 | return FALSE; |
| 873 | } | 864 | } |
| 874 | 865 | ||
| 875 | newLp = malloc(sizeof(LINE) + len - 1); | 866 | newLp = xmalloc(sizeof(LINE) + len - 1); |
| 876 | if (newLp == NULL) { | ||
| 877 | bb_error_msg("failed to allocate memory for line"); | ||
| 878 | return FALSE; | ||
| 879 | } | ||
| 880 | 867 | ||
| 881 | memcpy(newLp->data, data, len); | 868 | memcpy(newLp->data, data, len); |
| 882 | newLp->len = len; | 869 | newLp->len = len; |
diff --git a/editors/sed.c b/editors/sed.c index 19e768355..fd9dd1be6 100644 --- a/editors/sed.c +++ b/editors/sed.c | |||
| @@ -1094,7 +1094,7 @@ static void process_files(void) | |||
| 1094 | /* append next_line, read new next_line. */ | 1094 | /* append next_line, read new next_line. */ |
| 1095 | } | 1095 | } |
| 1096 | len = strlen(pattern_space); | 1096 | len = strlen(pattern_space); |
| 1097 | pattern_space = realloc(pattern_space, len + strlen(next_line) + 2); | 1097 | pattern_space = xrealloc(pattern_space, len + strlen(next_line) + 2); |
| 1098 | pattern_space[len] = '\n'; | 1098 | pattern_space[len] = '\n'; |
| 1099 | strcpy(pattern_space + len+1, next_line); | 1099 | strcpy(pattern_space + len+1, next_line); |
| 1100 | last_gets_char = next_gets_char; | 1100 | last_gets_char = next_gets_char; |
diff --git a/networking/libiproute/ipaddress.c b/networking/libiproute/ipaddress.c index c450c6a9f..03f5073fb 100644 --- a/networking/libiproute/ipaddress.c +++ b/networking/libiproute/ipaddress.c | |||
| @@ -97,9 +97,8 @@ static void print_queuelen(char *name) | |||
| 97 | static NOINLINE int print_linkinfo(const struct nlmsghdr *n) | 97 | static NOINLINE int print_linkinfo(const struct nlmsghdr *n) |
| 98 | { | 98 | { |
| 99 | struct ifinfomsg *ifi = NLMSG_DATA(n); | 99 | struct ifinfomsg *ifi = NLMSG_DATA(n); |
| 100 | struct rtattr * tb[IFLA_MAX+1]; | 100 | struct rtattr *tb[IFLA_MAX+1]; |
| 101 | int len = n->nlmsg_len; | 101 | int len = n->nlmsg_len; |
| 102 | unsigned m_flag = 0; | ||
| 103 | 102 | ||
| 104 | if (n->nlmsg_type != RTM_NEWLINK && n->nlmsg_type != RTM_DELLINK) | 103 | if (n->nlmsg_type != RTM_NEWLINK && n->nlmsg_type != RTM_DELLINK) |
| 105 | return 0; | 104 | return 0; |
| @@ -130,22 +129,27 @@ static NOINLINE int print_linkinfo(const struct nlmsghdr *n) | |||
| 130 | printf("Deleted "); | 129 | printf("Deleted "); |
| 131 | 130 | ||
| 132 | printf("%d: %s", ifi->ifi_index, | 131 | printf("%d: %s", ifi->ifi_index, |
| 133 | tb[IFLA_IFNAME] ? (char*)RTA_DATA(tb[IFLA_IFNAME]) : "<nil>"); | 132 | /*tb[IFLA_IFNAME] ? (char*)RTA_DATA(tb[IFLA_IFNAME]) : "<nil>" - we checked tb[IFLA_IFNAME] above*/ |
| 134 | 133 | (char*)RTA_DATA(tb[IFLA_IFNAME]) | |
| 135 | if (tb[IFLA_LINK]) { | 134 | ); |
| 136 | SPRINT_BUF(b1); | 135 | |
| 137 | int iflink = *(int*)RTA_DATA(tb[IFLA_LINK]); | 136 | { |
| 138 | if (iflink == 0) | 137 | unsigned m_flag = 0; |
| 139 | printf("@NONE: "); | 138 | if (tb[IFLA_LINK]) { |
| 140 | else { | 139 | SPRINT_BUF(b1); |
| 141 | printf("@%s: ", ll_idx_n2a(iflink, b1)); | 140 | int iflink = *(int*)RTA_DATA(tb[IFLA_LINK]); |
| 142 | m_flag = ll_index_to_flags(iflink); | 141 | if (iflink == 0) |
| 143 | m_flag = !(m_flag & IFF_UP); | 142 | printf("@NONE: "); |
| 143 | else { | ||
| 144 | printf("@%s: ", ll_idx_n2a(iflink, b1)); | ||
| 145 | m_flag = ll_index_to_flags(iflink); | ||
| 146 | m_flag = !(m_flag & IFF_UP); | ||
| 147 | } | ||
| 148 | } else { | ||
| 149 | printf(": "); | ||
| 144 | } | 150 | } |
| 145 | } else { | 151 | print_link_flags(ifi->ifi_flags, m_flag); |
| 146 | printf(": "); | ||
| 147 | } | 152 | } |
| 148 | print_link_flags(ifi->ifi_flags, m_flag); | ||
| 149 | 153 | ||
| 150 | if (tb[IFLA_MTU]) | 154 | if (tb[IFLA_MTU]) |
| 151 | printf("mtu %u ", *(int*)RTA_DATA(tb[IFLA_MTU])); | 155 | printf("mtu %u ", *(int*)RTA_DATA(tb[IFLA_MTU])); |
| @@ -382,12 +386,10 @@ static int FAST_FUNC store_nlmsg(const struct sockaddr_nl *who, struct nlmsghdr | |||
| 382 | struct nlmsg_list *h; | 386 | struct nlmsg_list *h; |
| 383 | struct nlmsg_list **lp; | 387 | struct nlmsg_list **lp; |
| 384 | 388 | ||
| 385 | h = malloc(n->nlmsg_len+sizeof(void*)); | 389 | h = xzalloc(n->nlmsg_len + sizeof(void*)); |
| 386 | if (h == NULL) | ||
| 387 | return -1; | ||
| 388 | 390 | ||
| 389 | memcpy(&h->h, n, n->nlmsg_len); | 391 | memcpy(&h->h, n, n->nlmsg_len); |
| 390 | h->next = NULL; | 392 | /*h->next = NULL; - xzalloc did it */ |
| 391 | 393 | ||
| 392 | for (lp = linfo; *lp; lp = &(*lp)->next) | 394 | for (lp = linfo; *lp; lp = &(*lp)->next) |
| 393 | continue; | 395 | continue; |
