mirror of
git://git.gnupg.org/gnupg.git
synced 2024-12-23 10:29:58 +01:00
* filter.h: Remove const from WHAT.
* progress.c (handle_progress): Store a copy of NAME. (progress_filter): Release WHAT, make sure not to print a NULL WHAT. * openfile.c (open_sigfile): Adjust free for new progress semantics. * plaintext.c (ask_for_detached_datafile): Don't dealloc pfx->WHAT.
This commit is contained in:
parent
e30006a769
commit
d174920691
@ -1,3 +1,11 @@
|
|||||||
|
2003-04-28 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* filter.h: Remove const from WHAT.
|
||||||
|
* progress.c (handle_progress): Store a copy of NAME.
|
||||||
|
(progress_filter): Release WHAT, make sure not to print a NULL WHAT.
|
||||||
|
* openfile.c (open_sigfile): Adjust free for new progress semantics.
|
||||||
|
* plaintext.c (ask_for_detached_datafile): Don't dealloc pfx->WHAT.
|
||||||
|
|
||||||
2003-04-28 David Shaw <dshaw@jabberwocky.com>
|
2003-04-28 David Shaw <dshaw@jabberwocky.com>
|
||||||
|
|
||||||
* build-packet.c (build_sig_subpkt): Comments.
|
* build-packet.c (build_sig_subpkt): Comments.
|
||||||
|
@ -110,7 +110,7 @@ typedef struct {
|
|||||||
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char *what; /* description */
|
char *what; /* description */
|
||||||
u32 last_time; /* last time reported */
|
u32 last_time; /* last time reported */
|
||||||
unsigned long last; /* last amount reported */
|
unsigned long last; /* last amount reported */
|
||||||
unsigned long offset; /* current amount */
|
unsigned long offset; /* current amount */
|
||||||
|
@ -284,7 +284,6 @@ open_sigfile( const char *iname, progress_filter_context_t *pfx )
|
|||||||
log_info(_("assuming signed data in `%s'\n"), buf );
|
log_info(_("assuming signed data in `%s'\n"), buf );
|
||||||
if (a && pfx)
|
if (a && pfx)
|
||||||
handle_progress (pfx, a, buf);
|
handle_progress (pfx, a, buf);
|
||||||
else
|
|
||||||
m_free(buf);
|
m_free(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -328,14 +328,11 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
|
|||||||
const char *inname, int textmode )
|
const char *inname, int textmode )
|
||||||
{
|
{
|
||||||
progress_filter_context_t pfx;
|
progress_filter_context_t pfx;
|
||||||
int dealloc_pfx_name = 1;
|
|
||||||
char *answer = NULL;
|
char *answer = NULL;
|
||||||
IOBUF fp;
|
IOBUF fp;
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
fp = open_sigfile( inname, &pfx ); /* open default file */
|
fp = open_sigfile( inname, &pfx ); /* open default file */
|
||||||
if (!fp)
|
|
||||||
dealloc_pfx_name = 0;
|
|
||||||
|
|
||||||
if( !fp && !opt.batch ) {
|
if( !fp && !opt.batch ) {
|
||||||
int any=0;
|
int any=0;
|
||||||
@ -370,8 +367,6 @@ ask_for_detached_datafile( MD_HANDLE md, MD_HANDLE md2,
|
|||||||
}
|
}
|
||||||
do_hash( md, md2, fp, textmode );
|
do_hash( md, md2, fp, textmode );
|
||||||
iobuf_close(fp);
|
iobuf_close(fp);
|
||||||
if (dealloc_pfx_name)
|
|
||||||
m_free ((void *)pfx.what);
|
|
||||||
|
|
||||||
leave:
|
leave:
|
||||||
m_free(answer);
|
m_free(answer);
|
||||||
@ -398,7 +393,6 @@ hash_datafiles( MD_HANDLE md, MD_HANDLE md2, STRLIST files,
|
|||||||
if( fp ) {
|
if( fp ) {
|
||||||
do_hash( md, md2, fp, textmode );
|
do_hash( md, md2, fp, textmode );
|
||||||
iobuf_close(fp);
|
iobuf_close(fp);
|
||||||
m_free ((void *)pfx.what);
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
log_error (_("no signed data\n"));
|
log_error (_("no signed data\n"));
|
||||||
|
@ -45,7 +45,9 @@ progress_filter (void *opaque, int control,
|
|||||||
pfx->offset = 0;
|
pfx->offset = 0;
|
||||||
pfx->last_time = make_timestamp ();
|
pfx->last_time = make_timestamp ();
|
||||||
|
|
||||||
sprintf (buffer, "%.20s ? %lu %lu", pfx->what, pfx->offset,
|
sprintf (buffer, "%.20s ? %lu %lu",
|
||||||
|
pfx->what? pfx->what : "?",
|
||||||
|
pfx->offset,
|
||||||
pfx->total);
|
pfx->total);
|
||||||
write_status_text (STATUS_PROGRESS, buffer);
|
write_status_text (STATUS_PROGRESS, buffer);
|
||||||
}
|
}
|
||||||
@ -69,7 +71,9 @@ progress_filter (void *opaque, int control,
|
|||||||
{
|
{
|
||||||
char buffer[50];
|
char buffer[50];
|
||||||
|
|
||||||
sprintf (buffer, "%.20s ? %lu %lu", pfx->what, pfx->offset,
|
sprintf (buffer, "%.20s ? %lu %lu",
|
||||||
|
pfx->what? pfx->what : "?",
|
||||||
|
pfx->offset,
|
||||||
pfx->total);
|
pfx->total);
|
||||||
write_status_text (STATUS_PROGRESS, buffer);
|
write_status_text (STATUS_PROGRESS, buffer);
|
||||||
|
|
||||||
@ -77,6 +81,14 @@ progress_filter (void *opaque, int control,
|
|||||||
pfx->last_time = timestamp;
|
pfx->last_time = timestamp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (control == IOBUFCTRL_FREE)
|
||||||
|
{
|
||||||
|
/* Note, that we must always dealloc resources of a filter
|
||||||
|
within the filter handler and not anywhere else. (We set it
|
||||||
|
to NULL and check all uses just in case.) */
|
||||||
|
m_free (pfx->what);
|
||||||
|
pfx->what = NULL;
|
||||||
|
}
|
||||||
else if (control == IOBUFCTRL_DESC)
|
else if (control == IOBUFCTRL_DESC)
|
||||||
*(char**)buf = "progress_filter";
|
*(char**)buf = "progress_filter";
|
||||||
return rc;
|
return rc;
|
||||||
@ -99,7 +111,7 @@ handle_progress (progress_filter_context_t *pfx, IOBUF inp, const char *name)
|
|||||||
filesize = opt.set_filesize;
|
filesize = opt.set_filesize;
|
||||||
|
|
||||||
/* register the progress filter */
|
/* register the progress filter */
|
||||||
pfx->what = name ? name : "stdin";
|
pfx->what = m_strdup (name ? name : "stdin");
|
||||||
pfx->total = filesize;
|
pfx->total = filesize;
|
||||||
iobuf_push_filter (inp, progress_filter, pfx);
|
iobuf_push_filter (inp, progress_filter, pfx);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user