/[winpt]/trunk/Src/wptGPGMEData.cpp
ViewVC logotype

Diff of /trunk/Src/wptGPGMEData.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 271 by twoaday, Sun Nov 5 08:57:45 2006 UTC revision 455 by twoaday, Thu Aug 2 20:01:53 2012 UTC
# Line 47  wrap_lines (char *inp, size_t inlen, siz Line 47  wrap_lines (char *inp, size_t inlen, siz
47      size_t n;      size_t n;
48    
49      inp[inlen] = 0;      inp[inlen] = 0;
50      if (inp[inlen-2] == '\r' && inp[inlen-1] == '\n')      if (inlen > 2 && inp[inlen-2] == '\r' && inp[inlen-1] == '\n')
51          end_is_le = 1;          end_is_le = 1;
52      out = (char *)calloc (1, 4*inlen/3+2+1);      out = (char *)calloc (1, 4*inlen/3+2+1);
53      if (!out)      if (!out)
# Line 156  is_armor_header (const char *line) Line 156  is_armor_header (const char *line)
156          "Comment:",          "Comment:",
157          "Charset:",          "Charset:",
158          "Hash:",          "Hash:",
159          "MessageID",          "MessageID:",
160          NULL          NULL
161      };      };
     int i;  
162    
163      for (i=0; header[i] != NULL; i++) {      for (size_t i=0; header[i] != NULL; i++) {
164          if (!strncmp (line, header[i], strlen (header[i])))          if (!strncmp (line, header[i], strlen (header[i])))
165              return -1;              return -1;
166      }      }
# Line 217  gpg_data_extract_plaintext (gpgme_data_t Line 216  gpg_data_extract_plaintext (gpgme_data_t
216  gpgme_error_t  gpgme_error_t
217  gpg_data_release_and_set_file (gpgme_data_t dh, const char *fname)  gpg_data_release_and_set_file (gpgme_data_t dh, const char *fname)
218  {  {
219      char *p = NULL;      FILE *fp = fopen (fname, "wb");
     FILE *fp;  
     size_t n;  
       
     fp = fopen (fname, "wb");  
220      if (fp == NULL)      if (fp == NULL)
221          return gpg_error (GPG_ERR_ENOENT);          return gpg_error (GPG_ERR_ENOENT);
222            
223      p = gpgme_data_release_and_get_mem (dh, &n);      size_t n;
224      if (p) {      char *p = gpgme_data_release_and_get_mem (dh, &n);
225        if (p != NULL) {
226          fwrite (p, 1, n, fp);          fwrite (p, 1, n, fp);
227          fflush (fp);          fflush (fp);
228          memset (p, 0xFF, n);          wipememory (p, n);
229          gpgme_free (p);          gpgme_free (p);
230      }      }
231      fclose (fp);      fclose (fp);
# Line 241  gpg_data_release_and_set_file (gpgme_dat Line 237  gpg_data_release_and_set_file (gpgme_dat
237     gpgme data object @dh into @line.     gpgme data object @dh into @line.
238     Return value: numbers of chars read. */     Return value: numbers of chars read. */
239  size_t  size_t
240  gpg_data_readline (gpgme_data_t dh, char *line, size_t nbytes)  gpg_data_readline (gpgme_data_t dh, char *line, size_t maxbytes)
241  {  {
242      char ch = 0;      char ch = 0;
243      int nread = 0, pos = 0;      int nread = 0, pos = 0;
# Line 249  gpg_data_readline (gpgme_data_t dh, char Line 245  gpg_data_readline (gpgme_data_t dh, char
245      if (!dh)      if (!dh)
246          return 0;          return 0;
247            
248      memset (line, 0, nbytes);      memset (line, 0, maxbytes);
249      while ((nread=gpgme_data_read (dh, &ch, 1)) > 0) {      while ((nread=gpgme_data_read (dh, &ch, 1)) > 0) {
250          if (!nread)          if (!nread)
251              break;              break;
# Line 259  gpg_data_readline (gpgme_data_t dh, char Line 255  gpg_data_readline (gpgme_data_t dh, char
255              break;              break;
256          }          }
257          line[pos++] = ch;          line[pos++] = ch;
258          if (pos > (int)nbytes) {          if (pos > (int)maxbytes-1) {
259              line[pos++] = '\0';              line[pos] = '\0';
260              break;              break;
261          }          }
262      }      }

Legend:
Removed from v.271  
changed lines
  Added in v.455

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26