~vcs-imports/busybox/trunk

« back to all changes in this revision

Viewing changes to libbb/fgets_str.c

  • Committer: Denys Vlasenko
  • Author(s): Christian Franke
  • Date: 2023-11-13 10:32:35 UTC
  • Revision ID: git-v1:a63b60bdd6fa26b867c80d44074118babbae7ffd
Cygwin: regenerate defconfig

Signed-off-by: Christian Franke <christian.franke@t-online.de>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>

Show diffs side-by-side

added added

removed removed

Lines of Context:
17
17
        int linebufsz = 0;
18
18
        int idx = 0;
19
19
        int ch;
20
 
        size_t maxsz = *maxsz_p;
 
20
        size_t maxsz = maxsz_p ? *maxsz_p : INT_MAX - 4095;
21
21
 
22
22
        while (1) {
23
23
                ch = fgetc(file);
53
53
        /* Grow/shrink *first*, then store NUL */
54
54
        linebuf = xrealloc(linebuf, idx + 1);
55
55
        linebuf[idx] = '\0';
56
 
        *maxsz_p = idx;
 
56
        if (maxsz_p)
 
57
                *maxsz_p = idx;
57
58
        return linebuf;
58
59
}
59
60
 
63
64
 * Return NULL if EOF is reached immediately.  */
64
65
char* FAST_FUNC xmalloc_fgets_str(FILE *file, const char *terminating_string)
65
66
{
66
 
        size_t maxsz = INT_MAX - 4095;
67
 
        return xmalloc_fgets_internal(file, terminating_string, 0, &maxsz);
 
67
        return xmalloc_fgets_internal(file, terminating_string, 0, NULL);
68
68
}
69
69
 
70
70
char* FAST_FUNC xmalloc_fgets_str_len(FILE *file, const char *terminating_string, size_t *maxsz_p)
71
71
{
72
 
        size_t maxsz;
73
 
 
74
 
        if (!maxsz_p) {
75
 
                maxsz = INT_MAX - 4095;
76
 
                maxsz_p = &maxsz;
77
 
        }
78
72
        return xmalloc_fgets_internal(file, terminating_string, 0, maxsz_p);
79
73
}
80
74
 
81
75
char* FAST_FUNC xmalloc_fgetline_str(FILE *file, const char *terminating_string)
82
76
{
83
 
        size_t maxsz = INT_MAX - 4095;
84
 
        return xmalloc_fgets_internal(file, terminating_string, 1, &maxsz);
 
77
        return xmalloc_fgets_internal(file, terminating_string, 1, NULL);
85
78
}